yml和properties加载顺序
来源:1-8 配置负载均衡策略
weixin_慕田峪6397672
2021-03-06 10:41:15
ConfigFileApplicationListener中这一段代码
PropertiesPropertySourceLoader中顺序是
YamlPropertySourceLoader中顺序是
所以最终加载顺序是:
properties->xml->yml->yaml
在PropertySourcesPropertyResolver中有个getProperty方法
根据配置文件中的key获取value,如果获取到value,直接返回。可见在
application.properties和在application.properties配置相同的
属性并不是后面的覆盖前面的,而是在前面根据key获取到了,直接返回,
不会再取后面的了。
老师,不知我这样是否正确?
1回答
姚半仙
2021-03-07
读取文件背后还有另一个层面,即“目录”概念,在同一个目录中,文件加载顺序和同学说的是一致的,但是对不同层级的目录来说,比如根目录下和resource文件目录下的文件,这之间加载也有一个先后顺序之分。
关于属性覆盖,同学可以参考官网,摘抄一段引用如下:
Spring Boot uses a very particular PropertySource
order that is designed to allow sensible overriding of values. Properties are considered in the following order (with values from lower items overriding earlier ones):
spring cloud里也有开关控制远程属性是否覆盖本地属性。
相似问题