如果加载的配置有重复的, 它们的加载顺序是这样的, 数字越小的优先级越高, 即优先级高的覆盖优先级低的配置.
Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active).
@TestPropertySource annotations on your tests.
@SpringBootTest#properties annotation attribute on your tests.
Command line arguments.
Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property)
ServletConfig init parameters.
ServletContext init parameters.
JNDI attributes from java:comp/env.
Java System properties (System.getProperties()).
OS environment variables.
A RandomValuePropertySource that only has properties in random.*.
- Profile-specific application properties outside of your packaged jar (application-{
- profile
- }.properties and YAML variants)
- Profile-specific application properties packaged inside your jar (application-{
- profile
- }.properties and YAML variants)
- Application properties outside of your packaged jar (application.properties and YAML variants).
- Application properties packaged inside your jar (application.properties and YAML variants).
@PropertySource annotations on your @Configuration classes.
Default properties (specified using SpringApplication.setDefaultProperties).
知道了它们的加载顺序, 我们就能知道从哪一步来替换配置.
http://www.javastack.cn/article/2017/spring-boot-config-load-order/
来源: http://www.bubuko.com/infodetail-3034742.html