多环境支持是现代互联网应用研发和交付的一个基本需求,通过规范多环境和对应的研发流程,可以同时提升交付质量和效率。
环境划分
通常我们会划分以下 4 个环境:
- dev 环境:开发环境,开发人员使用,版本变动很大。
- test 环境:测试环境,测试人员使用,版本相对稳定。
- pre 环境:灰度环境,外部用户可以访问,但是服务器配置相对较低,其它和生产环境一样。
- pro 环境:生产环境,面向外部用户,连接上互联网即可访问生产环境。
配置文件切换
在 Spring Boot 中,多环境配置文件名需要使用 application-{profile}.yaml 的格式,这里的 {profile} 对应的就是是环境标识。
比如我们有 dev、test、pre 和 prod 这 4 个环境,那么就可以创建以下 5 个配置文件:
- application.yaml 存放公共配置
- application-dev.yaml
- application-test.yaml
- application-pre.yaml
- application-prod.yaml
有 3 种方式可以切换配置文件:
- 在 application.yaml 中指定
spring.profiles.active: dev
- 在执行 java -jar 打包的时候,在后面加上
--spring.profiles.active=dev
- 在 Idea VM options 中设置
-Dspring.profiles.active=dev
配置类切换
我们还可以使用注解 @Profile,来指定哪些配置类(@Component/@Configuration/@ConfigurationProperties)在哪些环境下生效,如:
1 | false) (proxyBeanMethods = |