- 加载顺序不同
bootstrap.yml
(或bootstrap.properties
)先于application.yml
(或application.properties
)加载。在 Spring Boot 应用启动时,bootstrap
配置文件会首先被加载,它主要用于应用程序上下文的引导阶段。
- 这个加载顺序很重要,因为它允许在
bootstrap
阶段设置一些基本的、全局的配置,这些配置对于后续application
配置的正确加载可能是必要的。
- 应用场景不同
bootstrap.yml
的应用场景
- 配置中心相关配置:它通常用于从配置中心(如 Spring Cloud Config Server)加载配置。例如,当你的微服务需要从远程配置中心获取配置信息时,如配置中心的地址、应用名称、环境等信息可以在
bootstrap.yml
中设置。这样可以确保在应用启动的早期阶段就能够连接到配置中心,获取其他配置。
- 加密 / 解密相关配置:如果配置文件中有加密的属性,
bootstrap.yml
可以配置用于解密的密钥信息等。例如,在 Spring Cloud 中,可以在bootstrap.yml
中配置加密 / 解密的相关属性,使得应用能够正确解密在配置中心获取的加密配置。
application.yml
的应用场景
- 应用程序业务配置:主要用于定义应用自身的配置,如服务端口、数据库连接信息(如果不是通过配置中心获取)、日志级别等业务相关的配置。例如,一个 Spring Boot 微服务的
application.yml
可以配置server.port = 8080
来指定服务监听的端口,以及spring.datasource.url
等数据库连接相关配置。
- 覆盖规则不同
- 当
bootstrap.yml
和application.yml
中有相同的配置属性时,application.yml
中的配置会覆盖bootstrap.yml
中的配置。但这并不意味着bootstrap.yml
中的配置就没有作用,因为它的加载顺序优先,可能已经在早期阶段对应用的启动环境等产生了影响。
本文来自博客园,作者:余生请多指教ANT,转载请注明原文链接:https://www.cnblogs.com/wangbiaohistory/p/18636808