#bootstrap.yaml、application.yaml、bootstarp.properties、application.properties等配置文件的加载顺序#
1、配置文件加载顺序
实测版本:
<properties>
<springBoot.version>2.3.12.RELEASE</springBoot.version>
<springCloud-dependencies-version>Hoxton.SR12</springCloud-dependencies-version>
<springCloud-alicloud-version>2.2.6.RELEASE</springCloud-alicloud-version>
</properties>
1.1、当不存在活动的active时
bootstrap.yaml>bootstrap.properties > application.yaml>application.properties
- 命令行参数
- bootstrap.yaml
- bootstrap.properties
- 激活的特定配置文件(profile-active):application-dev.yaml
- application.yaml
- application.properties
网上有很多说法,说bootstrap.yaml和bootstrap.properties的启动加载顺序是一样,但是在实际操作中,当本地没有bootstrap.yaml配置文件时,应用不会去找别的配置文件中的nacos配置,会去本地的nacos配置当中找,当然它肯定是找不到,于是就会报错。
1.2、当存在活动的active时
bootstrap.yaml>bootstrap-dev.yaml>bootstrap.properties > application.yaml>application.properties
- 命令行参数指定active
- bootstrap.yaml
- 激活的特定配置文件(profile-active):bootstrap-dev.yaml
- bootstrap.properties
- application.yaml
- application.properties
此时,对于相同配置和不同配置,高优先级和低优先级的应用情况如下:
- 对于相同配置,在同为bootstrap或同为properties的情况下,此时遵循高优先级的会去覆盖低优先级的,如bootstrap-dev.yaml和bootstrap.properties,会使用bootstrap-dev.yaml中的配置
- 对不相同的配置,在为bootstrap或者properties的情况下,此时遵循低优先级的会去覆盖高优先级的,如同时存在bootstrap-dev.yaml、bootstrap.properties、application.properties这三个配置文件,则会应用applicationz.properties这个文件中的应用
3、当nacos和本地存在相同的配置文件时
- 当本地和nacos中存在相同配置时,nacos配置优先级更高
- 当本地和nacos中存在不同配置时,会合并
参考:
【精选】springBoot项目配置文件加载优先级及同配置覆盖问题_bootstrap-dev.yml_天下唯一的利哥哥的博客-CSDN博客