spring test: 配置文件优先级

application.properties 默认
application-xxx.properties 高
systemEnvironment 高
test/main/resources/ 同名文件

@TestPropertySource 优先级更高
jar外部的文件优先级最高
image

application.properties和application.yml,application-default.properties, application-default.yml可以同时在jar外部存在,此时我们可以用yml applicaiton-default.properties在test环境做一些特有配置,来覆盖PROD的配置。
default是默认的profile, 因此application-default.properties比application.properties优先级更高

Environment的属性配置都是在MutablePropertySources中,可以往里面增加自己的PropertySource

 

 add的时候会删除之前相同的propertySource, 因此可以重复增加,后面加载的会覆盖前面的

24. Externalized Configuration (spring.io) application.properties可以放在哪?

外部化配置:项目的根目录 /config下, main当前目录, classpath:/config下,resources下

https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#using-boot-configuration-classes

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-application-property-files
https://stackoverflow.com/questions/29669393/override-default-spring-boot-application-properties-settings-in-junit-test
https://www.baeldung.com/properties-with-spring#boot

@RunWith解释:   https://github.com/junit-team/junit4/wiki/test-runners#runwith-annotation



posted @ 2018-11-28 17:27  funny_coding  阅读(838)  评论(0编辑  收藏  举报
build beautiful things, share happiness