全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-18 6 分钟 ✍️ juanwangdev

Spring Boot 配置文件加载优先级

Spring Boot按特定顺序加载配置文件,后加载的配置覆盖前加载的配置。

配置文件位置

按优先级从高到低:

优先级位置说明
1当前目录/config/最高优先级
2当前目录/
3类路径/config/
4类路径/application.properties/yml
properties
项目根目录/
├── config/
│   └── application.yml        # 优先级最高
├── application.yml            # 优先级次高
├── src/main/resources/
│   ├── config/
│   │   └── application.yml    # 优先级第三
│   └── application.yml        # 优先级最低

配置文件格式

YAML
# 同时存在时,properties优先于yml
application.properties > application.yml

# 支持格式
.properties
.yml
.yaml

相同位置同时存在.properties和.yml,properties优先级更高。

加载顺序详解

YAML
1. file:./config/application.yml      (外置config目录)
2. file:./application.yml             (外置根目录)
3. classpath:/config/application.yml  (内置config目录)
4. classpath:/application.yml         (内置根目录)

覆盖规则

Java
# 低优先级配置
server:
  port: 8080
  name: app1

# 高优先级配置(外置)
server:
  port: 9090

# 最终生效:port=9090(覆盖),name=app1(保留)

高优先级配置覆盖同名属性,不同名属性保留低优先级配置值。

Profile配置文件

YAML
# 加载顺序
application.yml              # 基础配置
application-dev.yml          # Profile配置,覆盖基础配置
application.yml              # 当前目录/config/ 最高优先级

Profile配置文件优先级高于基础配置文件,但位置优先级仍然生效。

自定义配置文件名

Java
// 通过环境变量指定
System.setProperty("spring.config.name", "myapp");

// 加载 myapp.yml 而非 application.yml
Java
# 通过配置指定
spring:
  config:
    name: myapp

自定义配置位置

text
// 方式一:命令行参数
java -jar app.jar --spring.config.location=file:/custom/config/

// 方式二:环境变量
export SPRING_CONFIG_LOCATION=file:/custom/config/

// 方式三:配置文件
spring:
  config:
    location: file:/custom/config/

指定spring.config.location会替换默认位置,不追加。

spring.config.additional-location

text
// 在默认位置之外添加配置位置
spring.config.additional-location=file:/external/config/

// 加载顺序:
// 1. additional-location(最高)
// 2. 默认位置(按原有顺序)

配置文件优先级总结

配置位置优先级
spring.config.location指定最高
spring.config.additional-location高于默认
file:./config/
file:./
classpath:/config/
classpath:/最低

要点总结

  • 配置文件按位置优先级加载,高优先级覆盖同名属性
  • 同位置.properties优于.yml
  • 外置配置(当前目录)高于内置配置(类路径)
  • Profile配置覆盖基础配置
  • spring.config.location替换默认位置
  • spring.config.additional-location追加配置位置

📝 发现内容有误?点击此处直接编辑

← 上一篇 Spring Boot 环境变量与系统属性
下一篇 → Spring Boot 随机值与占位符
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库