您的位置:首页 > 编程语言 > Java开发

spring yml properties 配置文件如何生效

2016-01-01 17:09 316 查看

同一个项目下目录的优先级

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: