spring profile 多环境配置管理

本地、测试、开发、产品等不同环境文件配置

现象

  如果在开发时进行一些数据库测试,希望链接到一个测试的数据库,以避免对开发数据库的影响。

  开发时的某些配置比如log4j日志的级别,和生产环境又有所区别。

  各种此类的需求,让我希望有一个简单的切换开发环境的好办法。


解决

  现在spring3.1也给我们带来了profile,可以方便快速的切换环境。

  使用也是非常方便。只要在applicationContext.xml中添加下边的内容,就可以了

<!-- 开发环境配置文件 -->
    <beans profile="test">
        <context:property-placeholder location="/WEB-INF/test-orm.properties" />
    </beans>

    <!-- 本地环境配置文件 -->
    <beans profile="local">
        <context:property-placeholder location="/WEB-INF/local-orm.properties" />
    </beans>

profile的定义一定要在文档的最下边,否则会有异常。整个xml的结构大概是这样

<beans xmlns="..." ...>  
  <bean id="dataSource" ... />  
  <bean ... />  
  <beans profile="...">  
    <bean ...>  
  </beans>  
</beans>

激活 profile

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

1、ENV方式:

ConfigurableEnvironment.setActiveProfiles("test")
  • 1
  • 1

2、JVM参数方式:

  tomcat 中 catalina.bat(.sh中不用“set”) 添加JAVA_OPS。通过设置active选择不同配置文件

set JAVA_OPTS="-Dspring.profiles.active=test"

  eclipse 中启动tomcat。项目右键 run as –> run configuration–>Arguments–> VM arguments中添加。local配置文件不必上传git追踪管理

-Dspring.profiles.active="local"

3、web.xml方式:

<init-param>
  <param-name>spring.profiles.active</param-name>
  <param-value>production</param-value>
</init-param>
@ActiveProfiles({"unittest","productprofile"})

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

Tomcat6.0 管理器配置

最近忙着毕业答辩,填写材料,好多事情都给耽搁了!一个月都没有继续翻译tomcat,这回有点时间赶紧补上。 这部分,其实对开发者或者tomcat管理者来说,只...

1757
来自专栏流媒体人生

关于没有找到mspdb60.dll文件,解决方法

例使用cygwin或msys编译ffmpeg时,如果机器上只安装vs6.0时,创建lib文件就会出现上述错误。

501
来自专栏程序员与猫

ASP.NET Core模块概述

原文地址:ASP.NET Core Module overview By Tom Dykstra, Rick Strahl, and Chris Ross AS...

1838
来自专栏简单聊聊Spark

Hadoop1.2.1 WordCount Java 实现方式

1.编写java程序用到的jar包,如下截图,其实貌似只需要一个hadoop-core-1.2.1.jar就可以了,这个jar包在Hadoop的减压目录下

541
来自专栏nice_每一天

docker学习笔记(一)—— ubuntu16.04下安装docker

本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即...

512
来自专栏流柯技术学院

VisualVM监控远程主机上的JAVA应用程序

使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一...

631
来自专栏张善友的专栏

ASP.NET 5运行时升级到Beta5

在Visual Studio 2015 RTM和Windows 10正式发布之前,微软把开源.NET升级到了beta5,带来了一些增强和改变。和Visual S...

1898
来自专栏Golang语言社区

HTML5之客户端存储数据

在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法:localStorage - 没有时间限制的数据存储;sessionStorage - 针对一...

2884
来自专栏晓晨的专栏

IdentityServer Topics(3)- 定义客户端

1043
来自专栏流柯技术学院

Windows下JIRA6.3.6安装、汉化、破解

3、选择安装模式:   Express Install(use default settings):使用默认安装选项    Custom install(rec...

582

扫描关注云+社区