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源码分析之bootstrap.properties文件加载的原理
SpringBoot源码分析之bootstrap.properties文件加载的原理