# Spring Boot 配置属性设置优先级

Spring Boot设计了非常特殊的加载指定属性文件(PropertySource)的顺序,以允许对属性值进行合理的覆盖。属性值会以下面的优先级进行设置。

  • home目录下的Devtools全局设置属性(~/.spring-boot-devtools.properties,条件是当devtools激活时)。
  • @TestPropertySource注解的测试用例。
  • @SpringBootTest#properties注解的测试用例。
  • 命令行参数。
  • 来自SPRING_APPLICATION_JSON的属性(内嵌在环境变量或系统属性中的内联JSON)。
  • ServletConfig初始化参数。
  • ServletContext初始化参数。
  • java:comp/env的JNDI属性。
  • Java系统属性(System.getProperties())。
  • 操作系统环境变量。
  • RandomValuePropertySource,只包含random.*中的属性。
  • jar包外的Profile-specific应用属性(application-{profile}.properties和YAML变量)。
  • jar包内的Profile-specific应用属性(application-{profile}.properties和YAML变量)。
  • jar包外的应用配置(application.properties和YAML变量)。
  • jar包内的应用配置(application.properties和YAML变量)。
  • @Configuration类上的@PropertySource注解。
  • 默认属性(通过SpringApplication.setDefaultProperties指定)。
Last Updated: 7/20/2021, 11:20:02 AM