不修改代码的情况下,切换生产环境、测试环境,解决方案

在项目部署中,总是手动修改三套配置环境,过于繁琐,通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换,让我倍感轻松,【减少出错的风险,】

 

第一步:定义 profile

现在就可以通过定义 profile 来将开发和生产环境的数据源配置分开,这里我们定义两个 profile,一个名称是 development,另一个名称是 production

<!-- 开发环境配置文件 -->
<beans profile="development">
    <context:property-placeholderlocation="classpath:settings-development.properties"/>
</beans>

<!-- 生产环境配置文件 -->
<beans profile="production">
    <context:property-placeholderlocation="classpath:settings-production.properties"/>
</beans>

第二步: 定义默认 profile 

默认 profile 是指在没有任何 profile 被激活的情况下,默认 profile 内定义的内容将被使用,通常可以在 web.xml 中定义全局 servlet 上下文参数 spring.profiles.default 实现

<!-- 配置spring的默认profile -->
<context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>development</param-value>
</context-param>

第三步:激活 profile 

spring 为我们提供了大量的激活 profile 的方法,可以通过代码来激活,也可以通过系统环境变量、JVM参数、servlet上下文参数来定义 spring.profiles.active 参数激活 profile,这里我们通过定义 JVM 参数实现。

在生产环境中,以 tomcat 为例,我们在 tomcat 的启动脚本中加入以下 JVM 参数


1. 进入tomcat目录下的bin目录,如:/tomcat7/bin

2. 执行 vim  catalina.sh 命令,打开catalina.sh文件进行编辑。

3.修改 JAVA_OPTS  中的值,即可在tomcat启动脚本中添加相关参数【tomcat 8.5 在 最上方添加JPDA_OPTS=XXX】

如:

标红部分为我们添加的启动参数,spring.profiles.active=production被程序读取后会以key-value形式存在,key时spring内置的,不可修改,而value要与第一部中的对应,表示激活那个。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值