如何在调试、编译或运行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文件内容如下,一般会有多个<activatedProperties>代表不同的环境,那么其中<activeByDefault>true</activeByDefault>代表那个环境默认生效,下图代表dev环境生效:

	<!-- 打包的不同profile -->
     <profiles>
		<profile>
			<id>dev</id>
			<properties>
				<activatedProperties>dev</activatedProperties>
			</properties>
     		<activation>
				<!-- 默认环境 -->
				<activeByDefault>true</activeByDefault>
			</activation>

		</profile>
		
		<profile>
			<id>qa</id>
			<properties>
				<!-- 环境标识,需要与配置文件的名称相对应 -->
				<activatedProperties>qa</activatedProperties>
			</properties>
		</profile>
		
		<profile>
			<id>prod</id>
			<properties>
				<activatedProperties>prod</activatedProperties>
			</properties>
		</profile>
	</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动态选择配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值