一、执行顺序
- bootstrap.yml(bootstrap.properties)先加载,application.yml(application.properties)后加载
bootstrap.yml(bootstrap.properties):用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等
application.yml(application.properties): 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
二、加载原理
Spring中有上下文一说的,也叫Application Context。Application Context又是有父子关系的,所以必须要理解ApplicationContext是什么。
SpringCloud启动时,会先创建一个BootstrapContext,然后创建一个ApplicationContext,BootstrapContext是ApplicationContext的父上下文,
Bootstrap负责从外部源加载配置并解析,这两个上下文共用一个从外部获取的Environment。Bootstrap配置具有较高的优先级,不会被本地配置覆盖。
Bootstrap典型的应用场景是使用SpringConfig,这个时候你需要把配置信息配在bootstrap里面。Bootstrap属于引导配置,Application属于应用配置。
三、应用场景
- 当使用外部配置中心服务的时候,你应该在 bootstrap.yml 里面指定
名称
或服务地址
,如使用Nacos配置中心:spring: application: name: auth-service cloud: nacos: config: server-addr: 127.0.0.1:8848
- 一些加密/解密的信息