springboot 多环境配置
一、问题
软件开发中经常有开发环境、测试环境、预发布环境、生产环境,而且一般这些环境配置会各不相同,手动改配置麻烦且容易出错,如何管理不同环境的配置参数呢?spring-boot + maven可以解决不同环境独立配置不同参数的问题。
二、多环境配置
不同环境的配置yml文件名不一样:
- application-dev.yml(开发环境)
- application-test.yml(测试环境)
- application-uat.yml(预发布)
- application-pro.yml(生产环境)
eg:
application-dev.yml配置示例:
info: build: name: ${project.artifactId} groupId: ${project.groupId} artifactId: ${project.artifactId} version: ${project.version} server: port: 8081 endpoints: enabled: true sensitive: false data: test: envName: dev envconfig: 127.0.0.1:8081
application.yml
spring:
profiles:
active: dev
如果要切换不同环境,只需要修改spring.profiles.active即可。
读取配置参数:
@Setter @Getter @NoArgsConstructor @AllArgsConstructor @Component @ConfigurationProperties(prefix = "data.test") public class DataConfig { private String envName; private String envconfig; }
验证环境参数:
@Api("home controller") @RestController public class HomeController { @Autowired private DataConfig dataConfig; @RequestMapping("/env") @ApiOperation("env") public Object testEnv() { return dataConfig; } }
三、设置环境
1、启动jar包时设置spring.profiles.active
java -jar muti-env-config.jar --spring.profiles.active=test
2、maven打包时候设置环境(设置 pro 环境)
clean package -DskipTests -Ppro
pro环境示例:
demo参考地址:muti-env-demo
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端