如何在调试、编译或运行spring boot时,来实现切换不同的运行环境
1、首先创建properties文件或yml文件,命名参考如下,application-dev.properties、application-qa.properties、application-prod.properties分别代表开发、测试、生产环境的配置,然后还要创建一个application.properties用来控制切换环境
2、application.properties内容如下,代表选取当前生效的环境:
spring.profiles.active=@activatedProperties@
@activatedProperties@代表引用pom.xml中配置的值
3、配置pom.xml文件内容如下,一般会有多个
1
2 <profiles>
3 <profile>
4 <id>devid>
5 <properties>
6 <activatedProperties>devactivatedProperties>
7 properties>
8 <activation>
9
10 <activeByDefault>trueactiveByDefault>
11 activation>
12
13 profile>
14
15 <profile>
16 <id>qaid>
17 <properties>
18
19 <activatedProperties>qaactivatedProperties>
20 properties>
21 profile>
22
23 <profile>
24 <id>prodid>
25 <properties>
26 <activatedProperties>prodactivatedProperties>
27 properties>
28 profile>
29 profiles>
4、你有可能想,我如果想在打包的时候动态控制生成某个环境的包要怎么办?通过如下命令可以控制,-P参数后边跟对应的运行环境:
mvn clean install -P prod
prod就是代表打包默认activatedProperties,设置为prod生产环境的意思
5、你还可能想在打包的时候不指定运行环境,在运行的时候来指定运行环境,这样也可以,通过如下命令来运行spring boot jar包:
java -Dspring.profiles.active=qa -jar springboot-profiles-1.0-SNAPSHOT.jar
注意-Dspring.profiles.active=qa,代表在启动jar包时,指定activatedProperties为qa生产环境
6、如何判断当前启动的包是什么环境的包呢?通过启动时,spring打印的日志可以看出来
The following profiles are active: prod 代表启动时生效的环境是prod环境
参考连接
pom.xml配置,针对mvn clean install -P参数(环境参数)打包
使用Profiles
spring boot : spring.profiles.active来解决多个profile的问题
maven profile动态选择配置文件