【Java踩坑笔记】39_SpringBoot配置文件加载顺序,优先级搞反就完了 📅 发布时间:2026/7/12 19:09:54 👁️ 浏览次数: 39 | Spring Boot 配置文件加载顺序优先级搞反就完了摘要application.ymlapplication-dev.yml 命令行参数。搞反了覆盖关系上线后配置不生效排查半天。一、优先级顺序从高到低1. 命令行参数最高 java -jar app.jar --spring.profiles.activeprod 2. Java System PropertiesSystem.getProperties() java -Dspring.profiles.activeprod -jar app.jar 3. 操作系统环境变量 export SPRING_PROFILES_ACTIVEprod 4. 配置文件当前目录/config/ ./config/application-prod.yml 5. 配置文件当前目录 ./application-prod.yml 6. 配置文件classpath:/config/ classpath:/config/application-prod.yml 7. 配置文件classpath:/ classpath:/application-prod.yml最低记忆口诀外 内命令行 文件profile 具体 通用二、踩坑现场场景 1以为是 application.yml 覆盖 dev实际上是 dev 覆盖 yml# application.ymlspring.profiles.active:devdb.url:jdbc:mysql://localhost:3306/test# application-dev.ymldb.url:jdbc:mysql://dev-db:3306/test实际生效db.url jdbc:mysql://dev-db:3306/testdev 覆盖 yml场景 2命令行参数不生效搞反了顺序# ❌ 错误命令行参数在 -jar 前面java-spring.profiles.activeprod-jarapp.jar# ✅ 正确命令行参数在 -jar 后面java-jarapp.jar--spring.profiles.activeprod三、正确写法3.1 推荐的项目结构项目根目录/ ├── config/ │ └── application-prod.yml # ✅ 生产配置放外面方便修改 ├── application.yml # 通用配置 └── app.jar3.2 多环境配置# application.yml通用spring:profiles:active:profileActive# Maven 过滤server:port:8080# application-dev.ymlserver:port:8081# application-prod.ymlserver:port:8080四、最佳实践✅ 5 条铁律通用配置放application.yml环境差异放application-{profile}.yml生产配置放 jar 外面的config/目录方便修改命令行参数优先级最高紧急开关用这个spring.profiles.active在启动时指定不要写死在配置文件里用Value必须写默认值防止配置项不存在五、小结优先级命令行 外部配置文件 classpath 配置文件profile 具体配置 通用配置dev覆盖yml生产配置放 jar 外面的config/目录不需要重新打包紧急开关用命令行参数--switchtrue第五辑完。—— 下一篇进入第六辑数据库与 MyBatis 篇首篇PreparedStatement的setObject空值处理。更多资料一线大厂Java面试题合集
【Java踩坑笔记】38_AOP切面失效:同一个类里调用为什么不拦截? 38 | AOP 切面失效:同一个类里调用为什么不拦截? 摘要:AOP 切面的底层是代理,同一个类里自调用(this.xx())不经过代理,切面失效。这和 Transactional、Async 是同一个问题。 一、问题现象 Serv… 2026/7/12 19:09:54
Spring AOP底层是怎么织入的?——ProxyFactory、JDK Proxy vs CGLIB与编译期织入 很多人以为Spring AOP就是"动态代理",但当你发现Transactional在某些场景下失效,或者想在不重启的情况下动态添加切面时,才发现自己对AOP的理解只停留在表面。这篇从ProxyFactory开始,讲清楚Spring是如何在运行时决定用… 2026/7/12 19:09:54
django郑州市旅游推荐系统77711 计算机课程设计/毕业设计 前言 📌博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码&am… 2026/7/12 19:07:54
宜昌金融机构数据清洗实操指南:从合规风险到效率提升 40% 的落地路径 摘要 地市级中小金融机构普遍存在多源数据孤岛、数据标准混乱、脱敏不规范、人工处理低效等问题,极易引发监管合规风险与业务损耗。本文以宜昌金融行业为样本,梳理本地机构数据治理核心痛点,结合沙淘金金融数据治理实践,提出一套… 2026/7/12 20:36:15
城垣望古今,浮生皆往复 立于金陵城墙之上,一眼分两极。左侧鸡鸣寺,檐角载千年钟声,香火晨昏不息;右侧玄武湖,烟波绕十里长堤,流水岁岁如斯。山不动,湖不改,古寺未迁,城垣依旧。唯独人事… 2026/7/12 20:34:14
揭秘弹性预算控制:NVIDIA-Nemotron-Labs-3-Elastic-30B-A3B-FP8如何实现16%精度提升 [特殊字符] 揭秘弹性预算控制:NVIDIA-Nemotron-Labs-3-Elastic-30B-A3B-FP8如何实现16%精度提升 🚀 【免费下载链接】NVIDIA-Nemotron-Labs-3-Elastic-30B-A3B-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/NVIDIA-Nemotron-Labs-3-Elastic-30B-A3B-… 2026/7/12 20:32:14
现代流媒体协议解析与下载框架:N_m3u8DL-RE技术深度解析 现代流媒体协议解析与下载框架:N_m3u8DL-RE技术深度解析 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE … 2026/7/12 20:30:13
deepseek 生成的图表怎么导出?AI 导出鸭多方案详解 引言 在日常使用DeepSeek生成各类数据图表后,很多用户都会遇到图表导出繁琐、格式不兼容、转换失败等问题,不同使用场景下想要快速导出合规、可用的图表文件,常常耗费大量时间。结合AI 导出鸭工具,本文全方位讲解DeepSeek图表导出… 2026/7/12 20:26:12
深度解析抖音直播间弹幕抓取技术:WebSocket通信与签名验证架构设计 深度解析抖音直播间弹幕抓取技术:WebSocket通信与签名验证架构设计 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2025最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在实时… 2026/7/12 20:24:12
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14