" type="hidden"/>

Spring3自定義環境配置


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文件),更好的支持本地開發環境。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM