人的知识就好比一个圆圈,圆圈里面是已知的,圆圈外面是未知的。你知道得越多,圆圈也就越大,你不知道的也就越多。

0%

后端框架-多环境配置

多环境支持是现代互联网应用研发和交付的一个基本需求,通过规范多环境和对应的研发流程,可以同时提升交付质量和效率。

环境划分

通常我们会划分以下 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
2
3
4
5
6
7
@Configuration(proxyBeanMethods = false)
@Profile("production")
public class ProductionConfiguration {

// ...

}

参考资料

  1. DEV SIT UAT PET SIM PRD PROD常见环境英文缩写含义
小礼物走一走,来 Github 关注我