本文主要是介绍spring yml properties 配置文件如何生效,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
同一个项目下目录的优先级
- A /config subdirectory of the current directory.
- The current directory
- A classpath /config package
- The classpath root
优先级越来越低
并且会合并
.properties和.yml的关系
.properties优先于.yml
作用范围是属性,属性替换
当前jar包和依赖jar包的关系
当前jar包优先于依赖的jar包,并且会屏蔽掉相同目录相同名字的依赖jar包里的文件
依赖jar包的优先级
这个优先级应该是在运行的时候加载的顺序导致的,我也没搞清楚优先级顺序,但是能确定的是:以文件为单位的,即在高优先级的jar包里发现了适当的文件,就会屏蔽掉低优先级的文件。
项目内外和目录位置的优先级
目录位置优先级高
怎么理解:就是不管是项目的jar包还是依赖的jar包,现在A classpath /config package目录下找适当的文件,如果找不到,再从The classpath root目录下找适当的文件。在每个目录下都会存在项目jar包文件屏蔽依赖jar包相同目录相同名字的文件。
example1
项目A
application.yml
config/application.yml
config/application.properties
项目B
application.yml
config/application.yml
config/application.properties
项目B依赖项目A的jar包
最后生效的全是项目B的配置文件和merge版本,优先级从高到低为:config/application.properties>config/application.yml>application.yml
example2
项目A
application.yml
项目B
config/application.yml
项目B依赖项目A的jar包
先在config目录下查找,找到项目B的config/application.yml,再找到项目A的application.yml,所以生效的是这两个配置文件的merge版本,优先级从高到低为:
config/application.yml>application.yml
这篇关于spring yml properties 配置文件如何生效的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!