Spring3自定義環境配置 <beans profile="">

摘自springside3 
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等其他環境。

 

詳情:https://github.com/springside/springside4/wiki/Spring

http://jinnianshilongnian.iteye.com/blog/2000183

 

詳細配置與使用:http://www.cnblogs.com/chanedi/archive/2012/01/12/2320837.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章