【springboot】配置属性加载顺序

248 阅读1分钟

了解了 Spring Boot 各种配置的加载顺序,我们可以查询参数被覆盖的问题。

以下是就是配置参数的加载顺序:

1、开发者工具 Devtools 全局配置参数;

2、单元测试上的 @TestPropertySource 注解指定的参数;

3、单元测试上的 @SpringBootTest 注解指定的参数;

4、命令行指定的参数,如 java -jar springboot.jar --name="hello java"

5、命令行中的 SPRING_APPLICATION_JSONJSON 指定参数, 如 java -Dspring.application.json='{"name":"hello java"}' -jar springboot.jar

6、ServletConfig 初始化参数;

7、ServletContext 初始化参数;

8、JNDI参数(如 java:comp/env/spring.application.json);

9、Java系统参数(来源:System.getProperties());

10、操作系统环境变量参数;

11、RandomValuePropertySource 随机数,仅匹配:ramdom.*

12、JAR包外面的配置文件参数(application-{profile}.properties(YAML)

13、JAR包里面的配置文件参数(application-{profile}.properties(YAML)

14、JAR包外面的配置文件参数(application.properties(YAML)

15、JAR包里面的配置文件参数(application.properties(YAML)

16、@Configuration配置文件上 @PropertySource 注解加载的参数;

17、默认参数(通过 SpringApplication.setDefaultProperties 指定);

下图为项目目录配置加载的先后顺序:

在这里插入图片描述