Spring Boot使用Profile解决多环境切换

Spring Profile是Spring3引入的概念,主要用在项目多环境运行的情况下,通过激活方式实现多环境切换,省去多环境切换时配置参数和文件的修改,并且Spring profile提供了多种激活方法,例如配置文件,命令行,jvm参数设置等。

一、为什么要使用Profile

在平时在开发时,经常会出现在开发的时候使用一个开发数据库,测试的时候使用一个测试的数据库,而实际部署的时候需要一个数据库。以前的做法是将这些信息写在一个配置文件中,当我把代码部署到测试的环境中,将配置文件改成测试环境;当测试完成,项目需要部署到现网了,又要将配置信息改成现网的,既麻烦又容易出现问题。

而使用了Profile之后,就可以分别定义3个配置文件,一个用于开发、一个用户测试、一个用户生产,其分别对应于3个Profile。当在实际运行的时候,只需给定一个参数来激活对应的Profile即可,那么容器就会只加载激活后的配置文件,这样就可以大大省去我们修改配置信息而带来的烦恼。

二、Spring Profile的使用方法

针对上面的问题,可以采用如下的方案来解决:

在代码中新增多个配置文件,文件名可以是application-{profile}.properties,然后在applcation.properties文件中配置激活profile。

例如应用环境有:dev、uat、prod,那么,可以添加 4 个配置文件:

  • applcation.properties – 公共配置
  • application-dev.properties – 开发环境配置
  • application-uat.properties – 测试环境配置
  • application-prod.properties – 生产环境配置

下面介绍下激活profile的方式:

1、配置文件激活

在applcation.properties文件中可以通过以下配置来激活 profile:

# 激活dev环境的配置
spring.profiles.active = dev

spring.profiles.active = dev 表示当前环境激活application-dev.properties文件中的配置。

2、命令行

在运行java -jar 时候激活:

java -jar spring-boot-demo.jar --spring.profiles.active=dev

3、虚拟机参数

配置虚拟机参数激活:

-Dspring.profiles.active=dev
Spring Boot使用Profile解决多环境切换插图

4、在Java代码中激活

在Spring Boot启动类添加如下代码即可:

System.setProperty("spring.profiles.active", "test");

发表评论