不修改代码的情况下,切换生产环境、测试环境,解决方案
在项目部署中,总是手动修改三套配置环境,过于繁琐,通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换,让我倍感轻松,【减少出错的风险,】 第一步:定义 profile现在就可以通过定义 profile 来将开发和生产环境的数据源配置分开,这里我们定义两个 profile,一个名称是 development,另一个名称是 producti...
在项目部署中,总是手动修改三套配置环境,过于繁琐,通过 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要与第一部中的对应,表示激活那个。
更多推荐
所有评论(0)