springboot加载properties和yml配置文件的顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot加载properties和yml配置文件的顺序相关的知识,希望对你有一定的参考价值。

参考技术A 假设一个项目在同一位置同时存在application.properties和application.yml文件,

且其中都含有相同的某个key,但value不同,如:

application.properties中:server.port=8001,

application.yml中:server.port=8888。

问题:springboot是否都加载这两个配置文件?如果两个文件有相同的key,取哪一个文件的value?

答: 都加载,且按properties→yml的顺序加载。

在看到spring.factories中,配置加载器顺序是先执行PropertiesPropertySourceLoader再到YamlPropertySourceLoader。

在ConfigFileApplicationListener获取server.port这个key的value时候,可以发现两配置文件全都加载进去了,且注意顺序,application.properties文件在前。

getSource()方法获取到两个Source,先从application.properties文件中查找值,一旦找到立即返回,如果找不到再从application.yml中查找。

以上是关于springboot加载properties和yml配置文件的顺序的主要内容,如果未能解决你的问题,请参考以下文章

springboot加载properties和yml配置文件的顺序

springboot加载自定义properties原理

SpringBoot源码分析之bootstrap.properties文件加载的原理

SpringBoot源码分析之bootstrap.properties文件加载的原理

springboot加载指定的属性文件(properties和yml文件)

SpringBoot—配置文件详解:Properties和YAML