南通网站搜索引擎优化长沙寸金网络营销网址
在标准的 SpringBoot 应用中,本地配置加载顺序如下:
- 本地 bootstrap 配置,先于 application 配置加载。
 - 不带 profile 的配置,先于带 profile 的配置加载。
 - xxx.yaml 先于 xxx.properties 加载。
 - 本地配置先于 nacos 配置中心加载。
 - nacos 配置中心上公有配置先于 nacos 配置中心该服务的私有配置(即与微服务名同名的配置文件)加载。
 
综上,加载顺序为:
- bootstrap.yaml
 - bootstrap.properties
 - bootstrap-{profile}.yaml
 - bootstrap-{profile}.properties
 - application.yaml
 - application.properties
 - application-{profile}.yaml
 - application-{profile}.properties
 - nacos 配置中心共享配置(通过 spring.cloud.nacos.config.shared-configs 指定)。
 - nacos 配置中心该服务配置(通过 spring.cloud.nacos.config.prefix 和spring.cloud.nacos.config.file-extension 指定)。
 - nacos 配置中心该服务-{profile} 配置(通过 spring.cloud.nacos.config.prefix 和spring.cloud.nacos.config.file-extension、以及 spring.profiles.active 指定)。
 
因此,配置生效覆盖关系:
- 对于 key 名相同,后加载会覆盖掉前加载,故而最终为后加载的配置项生效。
 - 对于 key 名不同,则直接生效(会加载,但不会被覆盖)。
 
注意:不能理解为文件级整体覆盖,而仅是同名 key 会被后加载的键值覆盖。
