在项目部署中,总是手动修改三套配置环境,过于繁琐,通过 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要与第一部中的对应,表示激活那个。

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐