Spring Boot 配置文件生效规则

Spring Boot 配置文件生效规则

本文档整理了 Spring Boot 配置文件的加载顺序与优先级规则,包括项目内、项目外及多环境配置的管理方式。

1. 通用优先级规则(从高到低)

Spring Boot 中,配置优先级顺序如下(高优先级会覆盖低优先级):

  1. 命令行参数--server.port=8081
  2. JNDI属性 :来自 java:comp/env
  3. Java系统属性-Dserver.port=8081
  4. 操作系统环境变量
  5. 配置文件application.properties / application.yml),按以下位置顺序加载:
    • 当前目录下的 /config 子目录
    • 当前目录
    • classpath 下的 /config
    • classpath 根路径
  6. Profile 专用文件application-{profile}.properties/yml
  7. 默认属性SpringApplication.setDefaultProperties

2. 项目外配置文件规则

适用场景:不重新打包 JAR 的情况下修改配置。

优先级顺序(从高到低)

优先级 位置(相对于 JAR 包运行目录) 说明
最高 ./config/ JAR 同级目录下的 config 文件夹,推荐生产环境使用
./ JAR 同级目录
classpath:/config/ JAR 包内部 config 包(即 resources/config
最低 classpath:/ JAR 包内部根路径(即 resources 根目录)

高优先级配置会覆盖低优先级配置,不同位置配置互补合并。

完全自定义配置文件位置

使用 --spring.config.location 强制指定外部配置目录(此时内部配置不再生效):

bash 复制代码
java -jar my-app.jar --spring.config.location=file:/绝对路径/配置文件夹/application.properties
相关推荐
ayqy贾杰25 分钟前
Claude Fable 5 提示词泄漏,抓紧学习下
前端·后端·面试
智码看视界31 分钟前
Day18 SpringBoot自动配置原理:从@SpringBootApplication开始
java·spring boot·后端·自动装配
程序员爱钓鱼1 小时前
Rust 常量与静态变量详解:const 与 static 的区别
后端
m沐沐12 小时前
【深度学习】dlib 人脸关键点检测
人工智能·深度学习·opencv·计算机视觉·pycharm·人脸识别·关键点检测
戮漠summer12 小时前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
IT_陈寒14 小时前
Redis的KEYS命令把我搞崩溃了,改用SCAN才活过来
前端·人工智能·后端
长不胖的路人甲14 小时前
SpringCloud 服务雪崩、熔断、降级
后端·spring·spring cloud
爱折腾的小黑牛15 小时前
小程序多人协作的权限设计:三级权限的实现
后端
蓝银草同学15 小时前
Stream 实战:博客列表排序、过滤与分页(AI 辅助学习 Java 8)
java·前端·后端
小小猪的春天16 小时前
AI 编程 30 天实验复盘:效率提升 65%,线上 bug 涨到 11 个,问题出在哪
后端