Spring Boot 中application.yml与bootstrap.yml的区别
2022/6/10 23:21:31
本文主要是介绍Spring Boot 中application.yml与bootstrap.yml的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.加载顺序这里主要是说明application和bootstrap的加载顺序。
bootstrap.yml(bootstrap.properties)先加载
application.yml(application.properties)后加载
- bootstrap.yml 用于应用程序上下文的引导阶段。
- bootstrap.yml 由父Spring ApplicationContext加载。
父ApplicationContext 被加载到使用 application.yml 的之前。
2.配置区别
bootstrap.yml 和application.yml 都可以用来配置参数。
- bootstrap.yml:配置一些引导系统启动的参数,这些参数一旦指定后就不会变动了。比如程序的端口号,配置中心的地址等。
- application.yml:应用级别的参数配置,可能会根据业务需求做动态配置。比如日志级别,一些开关参数等。
使用Spring Cloud Config Server时,应在 bootstrap.yml 中指定:
spring.application.name spring.cloud.config.server.git.uri
3.一些加密/解密信息
实例:
bootstrap.yml spring: application: name: service-a cloud: config: uri: http://127.0.0.1:8888 fail-fast: true username: user password: ${CONFIG_SERVER_PASSWORD:password} retry: initial-interval: 2000 max-interval: 10000 multiplier: 2 max-attempts: 10当使用Spring Cloud时,通常从服务器加载“real”配置数据。为了获取URL(和其他连接配置,如密码等),您需要一个较早的或“bootstrap”配置。因此,您将配置服务器属性放在bootstrap.yml中,该属性用于加载实际配置数据(通常
覆盖application.yml [如果存在]中的内容)。
当然,在一些情况上不用那么区分这两个文件,你只需要使用application文件即可,把全部选项都写在这里,效果基本是一致的,在不考虑上面的加载顺序覆盖的问题上。
4. 举例
nacos配置中心的相关配置如下
spring: profiles: active: @profiles.active@ application: name: payment-service-dubbo-nacos main: allow-bean-definition-overriding: true cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml # 配置注册在tpag这个用户专有的namespace namespace: 6f97a206-ce19-44c2-85be-c601170d306e group: ${spring.application.name} username: tpag password: tpag refresh-enabled: true # 这边的shared-config和ext-config不能配置namespace,和上面的配置共享一个namespace,所以一般用于读取一个团队内部的共享文件 extensionConfigs[0]: data-id: ext1.yaml refresh: true # 默认是DEFAULT_GROUP group: ${spring.application.name} extensionConfigs[1]: data-id: ext2.yaml refresh: true group: ${spring.application.name} shared-configs[0]: data-id: share1.yaml refresh: true group: ${spring.application.name} shared-configs[1]: data-id: share2.yaml refresh: true group: ${spring.application.name}
这几个配置文件加载的顺序是 bootstrap.yml > application.yml > application-dev.yml > share1.yaml > share2.yaml > ext1.yaml > ext2.yaml > cloud:nacos:config标签下面dataId指定的配置文件。
假如配置文件中有相同的配置,后加载的配置会覆盖先加载的配置,所以如果使用Nacos配置中心的话,nacos上的配置的优先级会比较高。
这篇关于Spring Boot 中application.yml与bootstrap.yml的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署