spring profile 多環(huán)境配置管理詳解
spring profile 多環(huán)境配置管理
現(xiàn)象
如果在開(kāi)發(fā)時(shí)進(jìn)行一些數(shù)據(jù)庫(kù)測(cè)試,希望鏈接到一個(gè)測(cè)試的數(shù)據(jù)庫(kù),以避免對(duì)開(kāi)發(fā)數(shù)據(jù)庫(kù)的影響。
開(kāi)發(fā)時(shí)的某些配置比如log4j日志的級(jí)別,和生產(chǎn)環(huán)境又有所區(qū)別。
各種此類(lèi)的需求,讓我希望有一個(gè)簡(jiǎn)單的切換開(kāi)發(fā)環(huán)境的好辦法。
解決
現(xiàn)在spring3.1也給我們帶來(lái)了profile,可以方便快速的切換環(huán)境。
使用也是非常方便。只要在applicationContext.xml中添加下邊的內(nèi)容,就可以了
<!-- 開(kāi)發(fā)環(huán)境配置文件 -->
<beans profile="test">
<context:property-placeholder location="/WEB-INF/test-orm.properties" />
</beans>
<!-- 本地環(huán)境配置文件 -->
<beans profile="local">
<context:property-placeholder location="/WEB-INF/local-orm.properties" />
</beans>
profile的定義一定要在文檔的最下邊,否則會(huì)有異常。整個(gè)xml的結(jié)構(gòu)大概是這樣
<beans xmlns="..." ...> <bean id="dataSource" ... /> <bean ... /> <beans profile="..."> <bean ...> </beans> </beans>
激活 profile
spring 為我們提供了大量的激活 profile 的方法,可以通過(guò)代碼來(lái)激活,也可以通過(guò)系統(tǒng)環(huán)境變量、JVM參數(shù)、servlet上下文參數(shù)來(lái)定義 spring.profiles.active 參數(shù)激活 profile,這里我們通過(guò)定義 JVM 參數(shù)實(shí)現(xiàn)。
1、ENV方式:
ConfigurableEnvironment.setActiveProfiles("test")
2、JVM參數(shù)方式:
tomcat 中 catalina.bat(.sh中不用“set”) 添加JAVA_OPS。通過(guò)設(shè)置active選擇不同配置文件
set JAVA_OPTS="-Dspring.profiles.active=test"
eclipse 中啟動(dòng)tomcat。項(xiàng)目右鍵 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>
4、標(biāo)注方式(junit單元測(cè)試非常實(shí)用):
@ActiveProfiles({"unittest","productprofile"})
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
解決Java Redis刪除HashMap中的key踩到的坑
這篇文章主要介紹了解決Java Redis刪除HashMap中的key踩到的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
深入理解Java8新特性之新日期時(shí)間API的應(yīng)用
自從 14 年發(fā)布 Java 8 以后,我們古老 java.util.Date 終于不再是我們 Java 里操作日期時(shí)間的唯一的選擇,其實(shí) Java 里的日期時(shí)間的相關(guān) API 一直為世猿詬病,今天我們來(lái)了解新的日期時(shí)間API是怎么使用吧2021-11-11
SpringBoot實(shí)現(xiàn)埋點(diǎn)監(jiān)控
本文主要介紹了SpringBoot實(shí)現(xiàn)埋點(diǎn)監(jiān)控,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Java默認(rèn)傳入時(shí)間段時(shí)間的實(shí)例
下面小編就為大家?guī)?lái)一篇Java默認(rèn)傳入時(shí)間段時(shí)間的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10

