Spring Boot 配置优先级

Spring Boot 配置优先级

原文链接

Spring Boot 将配置外置,因此,你可以让同一个应用在不同的环境中正常工作。你可以使用 properties 文件, YAML 文件,环境变量,以及命令行参数将配置外置。属性值可以用 @Value 注解直接注入到 bean 中,用 Spring 的 Environment 抽象直接访问,或者通过 @ConfigurationProperties 绑定到结构化对象中

Spring Boot 使用一种特殊的 PropertySource 优先级顺序,这种方式设计为可以合理的覆盖属性值。属性以下列顺序依次考察:

  1. 读取 home 目录下 devtools 的全局属性设置 (当 devtools 有效时,~/.spring-boot-devtools.properties) 。
  2. 单元测试中的 @TestPropertySource 注解。
  3. 单元测试中的 properties 属性。在 @SpringBootTest 以及测试应用特定片段的测试注解中有效。
  4. 命令行参数。
  5. SPRING_APPLICATION_JSON (内嵌于某个环境变量或系统属性中的JSON) 中来的属性。
  6. 初始化参数中的 ServletConfig
  7. 初始化参数中的 ServletContext
  8. java:comp/env 中的 JNDI 属性。
  9. Java 系统属性 (System.getProperties())。
  10. 操作系统环境变量。
  11. 仅在 random.* 中的属性 RandomValuePropertySource
  12. jar 包之外的 profile 应用属性 (application-{profile}.properties 及对应的 YAML)。
  13. jar 包内的 profile 应用属性 (application-{profile}.properties 及对应的 YAML)。
  14. jar 包外的应用属性 (application.properties 及对应的 YAML)。
  15. jar 包内的应用属性 (application.properties 及对应的 YAML)。
  16. @Configuration 类的 @PropertySource 注解。
  17. 默认属性(设置在 SpringApplication.setDefaultProperties 中)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值