SpringBoot配置属性加载优先级及顺序
- 在您的主目录(当 devtools 被激活,则为
~/.spring-boot-devtools.properties
)中的 Devtools 全局设置属性。 - 在测试中使用到的
@TestPropertySource
注解。 - 在测试中使用到的
properties
属性,可以是@SpringBootTest
和用于测试应用程序某部分的测试注解。 - 命令行参数。
- 来自
SPRING_APPLICATION_JSON
的属性(嵌入在环境变量或者系统属性【system propert】中的内联 JSON)。 ServletConfig
初始化参数。ServletContext
初始化参数。- 来自
java:comp/env
的 JNDI 属性。 - Java 系统属性(
System.getProperties()
)。 - 操作系统环境变量。
- 只有
random.*
属性的RandomValuePropertySource
。 - 在已打包的 jar 外部的指定 profile 的应用属性文件(
application-{profile}.properties
和 YAML 变量)。 - 在已打包的 jar 内部的指定 profile 的应用属性文件(
application-{profile}.properties
和 YAML 变量)。 - 在已打包的 jar 外部的应用属性文件(
application.properties
和 YAML 变量)。 - 在已打包的 jar 内部的应用属性文件(
application.properties
和 YAML 变量)。 - 在
@Configuration
类上的@PropertySource
注解。 - 默认属性(使用
SpringApplication.setDefaultProperties
指定)。
以上的加载项中数字越小的加载约早,优先级越高。
4,12,13,14,15,16为常用的配置属性
参考:SpringBoot中文文档 https://docshome.gitbooks.io/springboot/content/