spring test: 配置文件优先级
application.properties 默认
application-xxx.properties 高
systemEnvironment 高
test/main/resources/ 同名文件
@TestPropertySource 优先级更高
jar外部的文件优先级最高
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/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