恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Spring Boot Profile 多环境切换实战 —— 以 springboot-properties 为例(含踩坑)

  • 首页
  • 资讯中心
  • /
  • Spring Boot Profile 多环境切换实战 —— 以 springboot-properties 为例(含踩坑)

相关资讯

AI行业人才需求变化与职业发展策略 2026/8/2 18:57:08
Gino同传带练小伙伴Dora第12天,介入无稿同传练习第1天。Gino同传带练,每个小伙伴的基础不同情况不一样,有针对性地安排先练哪一项。有的可能先练视译,有的可能先练有稿同传,有的可能先练无稿 2026/8/2 18:57:08
深入解析Tiva TM4C129X时钟与电源管理:从PLL、LDO到低功耗唤醒实战 2026/8/2 18:57:09

最新资讯

CANN/ge编译图API文档
Arm如何为Agentic AI时代重写芯片逻辑?
结构化类型系统深度解析:从TypeScript到Go的类型兼容机制
数据脱敏验证自动化框架设计与实践
LYT-Net:基于Transformer的低照度图像增强方案
OpenCore Legacy Patcher 教程:三步让老 Mac 安装最新 macOS

今日推荐

AI搜索重构内容生态:企业从“流量争夺”转向“答案共建”
AI搜索的信任缺口:企业内容如何在答案时代自证可信
Spring Boot+Vue+Node.js售后服务系统开发实战

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

Spring Boot Profile 多环境切换实战 —— 以 springboot-properties 为例(含踩坑)

发布时间:2026/9/10 11:22:14
Spring Boot Profile 多环境切换实战 —— 以 springboot-properties 为例(含踩坑) Spring Boot Profile 多环境切换实战springboot-properties 踩坑记录Spring Boot Profile 多环境切换实战 —— 以 springboot-properties 为例含踩坑本文基于 springboot-learning-example 中的springboot-properties模块记录 Spring Boot 多环境Profile切换的几种方式、配置优先级以及运行测试时容易踩的两个坑。一、项目背景该模块演示用ConfigurationProperties绑定自定义配置并通过 Profile 区分开发dev与生产prod环境。启动类Application.java实现了CommandLineRunner启动时会打印HomePropertiesHelloWorldController在/返回 Hello,World!。二、Spring Boot Profile 是什么Profile 是 Spring 提供的「按环境隔离配置」的机制。核心约定主配置文件application.properties环境专属文件application-{profile}.properties如application-dev.properties、application-prod.properties通过spring.profiles.active指定激活哪个环境三、本项目的多环境配置application.properties主指定激活环境# Spring Profiles Active spring.profiles.activeprodapplication-dev.properties开发环境## 家乡属性 Dev home.provinceZheJiang home.cityWenLing home.descdev: Im living in ${home.province} ${home.city}.application-prod.properties生产环境## 家乡属性 Prod home.provinceZheJiang home.cityWenLing home.descprod: Im living in ${home.province} ${home.city}.dev 与 prod 仅home.desc前缀不同dev:/prod:这正是用来验证当前激活环境的「标记」。四、4 种切换环境的方式优先级高 → 低命令行参数 / 环境变量 主配置文件 默认值。下面 4 种方式任选其一即可。方式 1修改主配置文件最常用随代码提交# application.properties spring.profiles.activedev # 改成 dev / prod 即可方式 2运行 Jar 时传命令行参数不改动文件推荐部署用java -jar target/springboot-properties-0.0.1-SNAPSHOT.jar --spring.profiles.activeprod方式 3Maven 插件启动时指定开发调试用mvn spring-boot:run -Dspring-boot.run.profilesprod方式 4环境变量容器 / 服务器部署最常用# Linux / macOS export SPRING_PROFILES_ACTIVEprod # Windows set SPRING_PROFILES_ACTIVEprod五、优先级速查表方式示例优先级适用场景命令行参数--spring.profiles.activeprod最高临时验证、部署环境变量SPRING_PROFILES_ACTIVEprod高Docker / K8s主配置文件spring.profiles.activeprod中随代码固定默认值无最低兜底提示高优先级的配置会「覆盖」低优先级所以命令行/环境变量设了 prod就算文件里写 dev 也会生效 prod。六、如何验证当前环境生效启动应用后看两处控制台打印的HomeProperties中desc字段 —— 带dev:还是prod:前缀。或浏览器访问http://localhost:8080/确认接口正常返回。HomeProperties{provinceZheJiang, cityWenLing, descprod: Im living in ZheJiang WenLing.}七、附运行测试时的两个隐藏坑坑 Amvn test测试被悄悄跳过pom 里maven-surefire-plugin写死了skipTeststrue/skipTests。这个值是写在configuration里的字面量命令行-DskipTestsfalse根本覆盖不了导致测试一直被跳过。解决把 pom 中skipTests改为false。坑 B运行 SpringBootTest 报 NoSuchMethodErrorpom 里硬编码了spring-boot-test:1.4.2.RELEASE与父依赖spring-boot 2.1.3.RELEASE冲突运行时抛NoSuchMethodError: SpringApplication.init(java.lang.Object[])。解决删除这个冗余依赖spring-boot-starter-test已经带正确版本。修复后运行单个测试方法的命令cd springboot-properties mvn test -DtestPropertiesTest#getHomeProperties八、总结切换环境本质就是改spring.profiles.active4 种方式按场景选。优先级记住一句话命令行 环境变量 配置文件。用home.desc前缀这个「标记」快速验证环境是否真的切换成功。跑测试前先确认 pom 没把skipTests写死、没引冲突的老版本依赖。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号