0%

Spring Boot 属性配置以及优先级

Spring Boot 可以灵活的在外部配置程序的属性参数,以便在不同的环境中使用相同的代码,如果不同的地方配置有相同的字段,那么高优先级的覆盖低优先级的,下面是Spring Boot可以配置属性的地方,优先级从:

  1. devtools处于活动状态时,$HOME/.config/spring-boot文件夹中的Devtools全局设置属性
  2. 测试类上的@TestPropertySource注解
  3. @SpringBootTest注解中的properties属性
  4. 命令行参数
  5. SPRING_APPLICATION_JSON定义的属性(嵌入在env变量或系统属性中的内联JSON)
  6. ServletConfig初始化参数
  7. ServletContext初始化参数
  8. 来自java:comp/env的JNDI属性
  9. Java系统属性 System.getProperties()
  10. 操作系统环境变量
  11. RandomValuePropertySource,仅具有random.*属性
  12. jar包的特定配置文件中的属性 (application-{profile}.propertiesapplication-{profile}.yml)
  13. jar包的特定配置文件中的属性 (application-{profile}.propertiesapplication-{profile}.yml)
  14. jar包的应用程序属性 (application.propertiesapplication.yml)
  15. jar包的应用程序属性 (application.propertiesapplication.yml)
  16. @Configuration类上的@PropertySource注解
  17. 默认属性(通过设置SpringApplication.setDefaultProperties指定)

参考链接:
Externalized Configuration