zoukankan      html  css  js  c++  java
  • Spring3自定义环境配置 <beans profile="">

    Spring 3.1的功能,以后就不用为了区分Test, Dev, Production环境,搞几个只有细微区别的application.xml, application-test.xml及引用它们的web.xml了。

    首先,将applicationContext.xml中的namespace从3.0升级到3.1.xsd, 然后就可以在文件末尾加入不同环境的定义,比如不同的dataSource

    Xml代码 
    <beans profile="test">
    <jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:com/bank/config/sql/schema.sql"/>
    </jdbc:embedded-database>
    </beans>
     
    <beans profile="production">
    <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/datasource"/>
    </beans>

    2.在web.xml里,你需要定义使用的profile,最聪明的做法是定义成context-param,注意这里定义的是default值,在非生产环境,可以用系统变量"spring.profiles.active"进行覆盖。

    Xml代码 
    <context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>production</param-value>
    </context-param>

     如果需要在eclipse设置development环境,在

    Run As --》Run Configurations... --》Environment 设置变量:
    spring.profiles.active = development

    3.在其他地方进行覆盖

    3.1 在development和functional test启动Jetty前设置系统变量

    Java代码 
    System.setProperty("spring.profiles.active", "development");
    server.start()
     
    3.2 在用到ApplicationContext的单元测试用例中,用 @ActiveProfiles定义

    Java代码 
    @ContextConfiguration(locations = { "/applicationContext.xml" })
    @ActiveProfiles("test")
    public class AccountDaoTest extends SpringTxTestCase {
    }
    演示了production,development,test,functional三个环境, 大家可以根据实际情况组合自己的环境管理。另外可以与Spring的properties文件加载时可顺位覆盖的特性(放一些不在版本管理中的xx.local.properties文件),更好的支持本地开发环境。
  • 相关阅读:
    现代C++学习笔记之二入门篇2,数据转换
    现代C++学习笔记之二入门篇1
    现代C++学习笔记之一资料篇(C++ 11)
    OSG3.2+Qt5.2.1+VS2012+OSGEarth 2.5编译问题记录
    无法解析的外部符号 _WinMain@16(原)
    qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用(转)
    一些webGL地球的网址
    Windows7下使用sphinx生成开源文档(原)
    VC解决方案,项目,开发一段时间启动调试很慢,半天才开始链接
    SQL笔记
  • 原文地址:https://www.cnblogs.com/adolfmc/p/4377939.html
Copyright © 2011-2022 走看看