您好,登錄后才能下訂單哦!
這篇文章主要介紹“springcloud中怎么使用profile實現多環境配置”,在日常操作中,相信很多人在springcloud中怎么使用profile實現多環境配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”springcloud中怎么使用profile實現多環境配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在開發過程中,我們的項目會存在不同的運行環境,比如開發環境、測試環境、生產環境,而我們的項目在不同的環境中,有的配置可能會不一樣,比如數據源配置、日志文件配置、以及一些軟件運行過程中的基本配置,那每次我們將軟件部署到不同的環境時,都需要修改相應的配置文件,這樣來回修改,很容易出錯,而且浪費勞動力。
springcloud默認會訪問的配置文件名是application.properties,
我們如果要創建多環境的配置文件的話,文件名格式應為:application-{profile}.properties
其中的{profile}用來標識不同的環境,如application-native.properties文件可以用來配置本地環境、application-prod.properties文件可以用來配置生產環境。
springcloud中通過“spring.profiles.active”屬性來指定{profile},如spring.profiles.active=native,則使用的是application-native.properties配置文件。
由于springcloud配置中心和springboot的多環境配置并沒有打通,
所以使用java -jar xxxx.jar --spring.profiles.active=prod命令只能對springboot項目中的配置有效,
并不能從配置中心獲取不同的環境配置,想要實現目標還需要多做一些工作。
在bootstrap.yml文件中配置配置中心,如下所示
使用三個短橫線將不同環境分隔開,這樣可以在一個文件中完成多個環境配置
spring: profiles: active: dev --- spring: profiles: dev cloud: bootstrap: enabled: false config: uri: http://localhost:8888 name: webclient profile: dev --- spring: profiles: test cloud: bootstrap: enabled: false config: uri: http://localhost:8888 name: webclient profile: test --- spring: profiles: prod cloud: bootstrap: enabled: false config: uri: http://localhost:8888 name: webclient profile: prod
而頂層pom中的配置情況是如下的:
本地、測試、開發、產品等不同環境文件配置
如果在開發時進行一些數據庫測試,希望鏈接到一個測試的數據庫,以避免對開發數據庫的影響。
開發時的某些配置比如log4j日志的級別,和生產環境又有所區別。
各種此類的需求,讓我希望有一個簡單的切換開發環境的好辦法。
現在spring3.1也給我們帶來了profile,可以方便快速的切換環境。
使用也是非常方便。只要在applicationContext.xml中添加下邊的內容,就可以了
<!-- 開發環境配置文件 --> <beans profile="test"> <context:property-placeholder location="/WEB-INF/test-orm.properties" /> </beans> <!-- 本地環境配置文件 --> <beans profile="local"> <context:property-placeholder location="/WEB-INF/local-orm.properties" /> </beans> ??profile的定義一定要在文檔的最下邊,否則會有異常。整個xml的結構大概是這樣 <beans xmlns="..." ...> <bean id="dataSource" ... /> <bean ... /> <beans profile="..."> <bean ...> </beans> </beans>
spring 為我們提供了大量的激活 profile 的方法,可以通過代碼來激活,也可以通過系統環境變量、JVM參數、servlet上下文參數來定義 spring.profiles.active 參數激活 profile,這里我們通過定義 JVM 參數實現。
1、ENV方式:
ConfigurableEnvironment.setActiveProfiles("test")
2、JVM參數方式:
tomcat中catalina.bat(.sh中不用“set”) 添加JAVA_OPS。通過設置active選擇不同配置文件
set JAVA_OPTS="-Dspring.profiles.active=test" ??eclipse 中啟動tomcat。項目右鍵 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、標注方式(junit單元測試非常實用):
@ActiveProfiles({"unittest","productprofile"})
到此,關于“springcloud中怎么使用profile實現多環境配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。