项目配置文件正确但是启动失败,报配置文件内容错误或中间件地址与实际不符

起因:小伙伴调试项目,为了方便频繁修改配置文件,使用指定本地 yml 方式启动项目:java -jar demo.jar --spring.config.location=/xx/application-prod.yml。

调试完成后修改项目 yml 重新打包启动,出现与实际项目 yml 不一致的问题。

这是由于,配置文件的加载优先顺序(从高到低,高优先级配置会覆盖低优先级)

本地的 yml 覆盖了 项目中的 yml

java 复制代码
应用 Jar 包外部的配置文件优先于 Jar 包内部的配置文件,具体路径顺序:
Jar 包所在目录的 config/ 子目录(最优先的外部配置)
例如:./config/application.yml
Jar 包所在的根目录
例如:./application.yml
Jar 包内部的 config/ 目录
例如:Jar 包内 BOOT-INF/classes/config/application.yml
Jar 包内部的根目录(默认位置,优先级最低)
例如:Jar 包内 BOOT-INF/classes/application.yml

不同文件格式的优先级
同一路径下,不同格式的配置文件优先级:
application.properties > application.yml > application.yaml

** 核心原则:外部配置优先于内部配置,命令行参数优先于所有配置文件,同路径下 properties 格式优先于 yml/yaml**

相关推荐
a努力。5 分钟前
国家电网Java面试被问:二叉树的前序、中序、后序遍历
java·开发语言·后端·面试
賬號封禁中miu17 分钟前
图论之最小生成树
java·数据结构·算法·图论
月明长歌18 分钟前
Java数据结构:PriorityQueue堆与优先级队列:从概念到手写大根堆
java·数据结构·python·leetcode·
lalala_Zou20 分钟前
小米日常实习一面
java·后端·面试
算法与双吉汉堡26 分钟前
【短链接项目笔记】Day3 用户模块剩余部分
java·redis·后端
Chengbei1127 分钟前
fastjson 原生反序列化配合动态代理绕过限制
java·安全·网络安全·系统安全·安全架构
lhrimperial28 分钟前
MySQL底层原理
java·后端·mysql
qq_3771123729 分钟前
JAVA的平凡之路——此峰乃是最高峰JVM-GC垃圾回收器(1)-06
java·开发语言·jvm
学编程就要猛33 分钟前
算法:2.复写零
java·数据结构·算法
韩立学长36 分钟前
【开题答辩实录分享】以《植物园信息管理系统》为例进行选题答辩实录分享
java·数据库·spring