我們在專案開發過程中,經常需要往開發環境、測試環境、生產環境部署程式。隨著程式越來越複雜,配置檔案的增多,如果每次部署都去改一遍配置檔案,這種重複的工作會把程式設計師逼瘋。
好在spring提供了這一自動切換的功能,簡要說明如下:
- 首先在applicationContext中,對需要配置的引數進行配置,以下圖為例:
<bean id="minaService" class="com.***.***.mina.MinaService"
scope="singleton" lazy-init="false" init-method="init" destroy-method="destroy">
<property name="port" value="${port}" />
<property name="bothIdleTime" value="${both_idle_time}" />
<property name="protocolCodecFilter" ref="protocolCodecFilter" />
<property name="poolSize" value="${pool_size}" />
</bean>
-
再準備好開發環境配置檔案config.local.properties,測試環境檔案config.test.properties,以下示例:
1)開發環境:
port=8888 both_idle_time=120 pool_size=16
2)測試環境:
port=6666 both_idle_time=120 pool_size=16
-
在spring applicationContext.xml中,配置如下引數:
<beans profile="local">
<context:property-placeholder
ignore-resource-not-found="true" location="classpath:/config/config.local.properties" />
</beans>
<beans profile="test">
<context:property-placeholder
ignore-resource-not-found="true" location="classpath:/config/config.test.properties" />
</beans>
| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| Text | Text | Text |
-
在web.xml中,配置如下引數:
<context-param> <param-name>spring.profiles.default</param-name> <param-value>local</param-value> </context-param>
-
按以上4步配置完畢後,就可以開發、測試、生產各配置一套配置檔案了。第4步中的配置,是指預設載入local配置檔案。我們在實際使用過程中,肯定是希望在哪個環境下就自動載入哪個環境的配置,那麼該如何做呢?我們來看第6步
-
我們可以在伺服器(如weblogic)的啟動指令碼中增加一個引數,例如EVN,然後再指定Active的環境是EVN,示例如下:
export ENV=test export JAVA_OPTIONS="-Dspring.profiles.active=${ENV}”
至此,大功告成。
本作品採用《CC 協議》,轉載必須註明作者和本文連結