1. 为什么需要多环境配置?
在真实的企业级开发中,一个SpringBoot应用通常需要在多个环境中运行:开发环境(dev)、测试环境(test)、预发布环境(stage)和生产环境(prod)。每个环境都有不同的配置需求:
- 开发环境:使用本地数据库,开启调试日志
- 测试环境:连接测试数据库,启用Mock服务
- 生产环境:配置集群连接,启用性能优化参数
手动修改配置不仅容易出错,在紧急发布时更是灾难。我在2018年就经历过一次血泪教训:由于测试环境误用了生产数据库配置,导致用户数据被意外清空。这次事故让我深刻认识到多环境配置的重要性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础配置方案
2.1 配置文件命名规范
SpringBoot默认支持按环境加载配置文件,命名规则为:
code复制application-{profile}.yml
例如:
code复制application-dev.yml # 开发环境
application-test.yml # 测试环境
application-prod.yml # 生产环境
重要提示:基础配置必须放在application.yml中,环境特有配置才放在profile文件中。我曾见过有人把全部配置都放在环境文件里,导致维护成本翻倍。
2.2 激活环境的方式
2.2.1 命令行激活(推荐生产环境使用)
bash复制java -jar your-app.jar --spring.profiles.active=prod
2.2.2 系统变量激活(适合容器化部署)
bash复制export SPRING_PROFILES_ACTIVE=prod
java -jar your-app.jar
2.2.3 IDE配置激活(开发阶段使用)
在IntelliJ IDEA的Run/Debug Configurations中:
code复制VM options: -Dspring.profiles.active=dev
3. 高级配置技巧
3.1 多环境属性覆盖策略
SpringBoot的配置加载有特定顺序,理解这个顺序能避免很多坑:
- 默认的application.yml
- 环境特定的applicati
