打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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代码  
  1. <beans profile="test">  
  2. <jdbc:embedded-database id="dataSource">  
  3. <jdbc:script location="classpath:com/bank/config/sql/schema.sql"/>  
  4. </jdbc:embedded-database>  
  5. </beans>  
  6.   
  7. <beans profile="production">  
  8. <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/datasource"/>  
  9. </beans>  
 
2.在web.xml里,你需要定义使用的profile,最聪明的做法是定义成context-param,注意这里定义的是default值,在非生产环境,可以用系统变量"spring.profiles.active"进行覆盖。

Xml代码  
  1. <context-param>  
  2. <param-name>spring.profiles.default</param-name>  
  3. <param-value>production</param-value>  
  4. </context-param>  
 
3.在其他地方进行覆盖

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

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

Java代码  
  1. @ContextConfiguration(locations = { "/applicationContext.xml" })  
  2. @ActiveProfiles("test")  
  3. public class AccountDaoTest extends SpringTxTestCase {  
  4. }  
 
在springside里有演示了production,development,test,functional三个环境, 大家可以根据实际情况组合自己的环境管理。另外可以与Spring的properties文件加载时可顺位覆盖的特性(放一些不在版本管理中的xx.local.properties文件),更好的支持本地开发环境,Jenkins上的functional test等其他环境。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ApplicationContext中profile指定解读
Spring MVC 入门
Spring为ApplicationContext提供的三种方式(转)_fyf_fff_新...
【Struts2 Spring3 Hibernate3】SSH框架整合实现CRUD
spring整合MyBatis思路
详解Spring的配置文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服