實現開發環境、測試環境、生產環境配置自動切換

在項目部署中,總是手動修改三套配置環境,過於繁瑣,通過 spring 容器內建的 profile 功能實現開發環境、測試環境、生產環境配置自動切換,讓我倍感輕鬆。

第一步:定義 profile

現在就可以通過定義 profile 來將開發和生產環境的數據源配置分開,這裏我們定義兩個 profile,一個名稱是 development,另一個名稱是 production

<!-- 開發環境配置文件 -->
<beansprofile="development">
    <context:property-placeholderlocation="classpath:settings-development.properties"/>
</beans>
 
<!-- 生產環境配置文件 -->
<beansprofile="production">
    <context:property-placeholderlocation="classpath:settings-production.properties"/>
</beans>

第二步: 定義默認 profile 

默認 profile 是指在沒有任何 profile 被激活的情況下,默認 profile 內定義的內容將被使用,通常可以在 web.xml 中定義全局 servlet 上下文參數 spring.profiles.default 實現

<!-- 配置spring的默認profile -->
<context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>development</param-value>
</context-param>

第三步: 激活 profile 

spring 爲我們提供了大量的激活 profile 的方法,可以通過代碼來激活,也可以通過系統環境變量、JVM參數、servlet上下文參數來定義 spring.profiles.active 參數激活 profile,這裏我們通過定義 JVM 參數實現。

在生產環境中,以 tomcat 爲例,我們在 tomcat 的啓動腳本中加入以下 JVM 參數

-Dspring.profiles.active="production"


而開發環境中不需要定義該參數,如果不定義,則會使用我們指定的默認 profile ,在這裏也就是名稱爲 development 的 profile。這樣當項目部署到不同的環境時,便可以通過 JVM 參數來實現不同環境 profile 自動激活

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