Spring Boot 加载配置文件的优先级

Spring Boot 加载配置文件的优先级按以下顺序排列,高优先级的配置会覆盖低优先级的配置:

  1. 命令行参数:通过 --spring.config.location 或 --spring.config.additional-location 指定的配置文件路径拥有最高的优先级。

  2. Java系统属性:通过 System.setProperty() 设置的属性。

  3. 操作系统环境变量:所有以 SPRING_APPLICATION_JSON 形式存在的环境变量,以及以 spring.* 开头的环境变量会被转换为配置属性。

  4. 配置文件外部

    • config/{name}-{profile}.properties 或 config/{name}-{profile}.yml
    • {name}-{profile}.properties 或 {name}-{profile}.yml
    • config/{name}.properties 或 config/{name}.yml
    • {name}.properties 或 {name}.yml

    其中 {name} 默认为 application{profile} 是激活的Spring Boot配置环境。

  5. 配置文件内部(对于已打包的应用):

    • BOOT-INF/classes/config/{name}-{profile}.properties 或 BOOT-INF/classes/config/{name}-{profile}.yml
    • BOOT-INF/classes/{name}-{profile}.properties 或 BOOT-INF/classes/{name}-{profile}.yml
    • BOOT-INF/classes/config/{name}.properties 或 BOOT-INF/classes/config/{name}.yml
    • BOOT-INF/classes/{name}.properties 或 BOOT-INF/classes/{name}.yml
  6. @Configuration 类上的 @PropertySource 注解:这种方式加载的配置具有较低的优先级,但是可以直接指向具体的配置文件。

  7. 默认配置:Spring Boot包含一些内建的默认配置,其优先级最低。

另外,在同一位置下,.properties 文件优先级高于 .yml 或 .yaml 文件,且带有具体环境标识(如开发、生产环境)的配置文件优先于通用配置文件

综上所述,Spring Boot 加载配置时会综合考虑配置文件的位置、名称及格式,并遵循上述优先级顺序。如果同一个配置项在不同优先级的配置文件中都存在,则采用优先级较高的配置文件中的值。

相关推荐

  1. Spring Boot 配置文件优先级

    2024-03-25 08:48:02       36 阅读
  2. springBoot配置文件

    2024-03-25 08:48:02       127 阅读
  3. npm配置文件 .npmrc 优先级和使用示例

    2024-03-25 08:48:02       59 阅读
  4. springboot配置文件(三)外部配置文件

    2024-03-25 08:48:02       53 阅读
  5. 【spring】外部配置文件

    2024-03-25 08:48:02       26 阅读
  6. SpringBoot配置6种方式

    2024-03-25 08:48:02       63 阅读
  7. Spring@Bean通过配置文件实现控制???

    2024-03-25 08:48:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-25 08:48:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-25 08:48:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-25 08:48:02       82 阅读
  4. Python语言-面向对象

    2024-03-25 08:48:02       91 阅读

热门阅读

  1. 网络安全简答题

    2024-03-25 08:48:02       35 阅读
  2. FPGA时钟资源详解——Clock-Capable Inputs

    2024-03-25 08:48:02       39 阅读
  3. 【DevOps云实践】Azure Function中使用发布/订阅模式

    2024-03-25 08:48:02       42 阅读
  4. spring boot常见的面试题

    2024-03-25 08:48:02       39 阅读
  5. 解决 Jupyter Notebook 中没有显示想要的内核的问题

    2024-03-25 08:48:02       36 阅读