当前位置: 首页 > news >正文

82、高级特性-配置加载优先级

82、高级特性-配置加载优先级

在Spring Boot中,配置加载优先级决定了多个配置源中相同属性的最终取值。以下是详细的配置加载优先级顺序:

#### 按配置来源优先级(从高到低)

1. **命令行参数**

   - 通过`--key=value`形式在启动时传入,具有最高优先级。

   - 示例:`java -jar myapp.jar --server.port=8081`

2. **Java系统属性**

   - 使用`-Dkey=value`在启动时设置。

   - 示例:`java -Dserver.port=8081 -jar myapp.jar`

3. **操作系统环境变量**

   - 在操作系统中设置的变量,如`SERVER_PORT=8081`。

4. **JNDI属性**

   - 从Java命名和目录接口获取,适用于J2EE环境。

5. **`RandomValuePropertySource`**

   - 用于生成随机数,如`my.secret=${random.int}`。

6. **外部配置文件**

   - **打包外部的`application.properties`或`application.yml`**

     - 位于`jar`包同级目录或指定目录,如`/my/config/application.properties`。

     - 可通过`--spring.config.location`指定路径。

   - **打包外部的`application-{profile}.properties`或`application-{profile}.yml`**

     - 根据激活的`profile`加载,如`application-dev.properties`。

7. **内部配置文件**

   - **`application.properties`或`application.yml`**

     - 位于`src/main/resources`目录下。

   - **`application-{profile}.properties`或`application-{profile}.yml`**

     - 根据激活的`profile`加载,优先级高于默认的`application.properties`或`application.yml`。

8. **`@PropertySource`注解**

   - 在配置类上使用`@PropertySource`加载的外部属性文件。

9. **默认属性**

   - 通过`SpringApplication.setDefaultProperties`设置的默认值。

#### 按文件类型优先级(在相同来源下)

- **`application.properties`**

- **`application.yml`**

- **`application.yaml`**

#### 注意事项

- **相同属性覆盖原则**:高优先级的配置会覆盖低优先级的相同属性。

- **不同属性累加原则**:不同配置源中的不同属性会累加,共同生效。

- **`bootstrap`配置文件**:`bootstrap.properties`和`bootstrap.yml`用于配置Spring Cloud Config等,加载顺序在`application`系列文件之前。

通过理解以上配置加载优先级,可以更灵活地管理和配置Spring Boot应用程序,满足不同环境和需求。

http://www.lryc.cn/news/576194.html

相关文章:

  • debain切换 opensuse 我都安装了什么
  • 【数据挖掘】数据采集和预处理
  • Milvus报错,reson=timestamp lag too large
  • [Python]-基础篇1- 从零开始的Python入门指南
  • C++11 <chrono> 库特性:从入门到精通
  • SpringMVC系列(四)(请求处理的十个实验(下))
  • 【请关注】制造企业机械加工数据脱敏解决方案
  • 【数据分析,相关性分析】Matlab代码#数学建模#创新算法
  • 目标跟踪存在问题以及解决方案
  • Linux信号机制:从入门到精通
  • Windows VMWare Centos环境下安装Docker并配置MySql
  • 香港 8C 站群服务器买来可以做哪些业务?
  • opi是opensuse独占的吗?
  • 工厂“智能指挥家”上线,富唯智能调度系统让机器人高效协作
  • 关于SAP产品名称变更通知 SAP云认证实施商工博科技
  • 导出docker-compse.yml中docker镜像成tar文件
  • 基于fpga的串口控制的音乐播放器
  • 从0开始学习计算机视觉--Day04--损失函数
  • 微信小程序:实现树形结构组件
  • 【MySQL进阶】服务器配置与管理——系统变量,选项,状态变量
  • 将ONNX模型转换为(OPENMV可用的格式)TensorFlow Lite格式
  • Flotherm许可状态检查
  • Godot4.3类星露谷游戏开发之【简易库存】(UI部分)
  • HTTPS hostname wrong: should be <xxx>错误解决
  • 【大模型水印论文阅读2】前缀文本编码、均匀性约束
  • Stable Diffusion 3终极提示词库:2000个工业设计场景生成公式(2025企业级实战指南)
  • 强化学习理论基础:从Q-learning到PPO的算法演进(2)
  • openGL学习(基本窗口)
  • [ linux-系统 ] 磁盘与文件系统
  • 【论文阅读 | CVPR 2025 |MambaVision:一种混合 Mamba-Transformer 视觉骨干网络】