Spring 配置屬性的外在化

Spring 配置屬性的外在化

在大多數情況下,我們可以在一個Bean裝配文件裏配置整個程序,但是有時卻需要把部分配置
提取到單獨的屬性文件裏,最常見的一種情形就是配置數據源。

Spring裏面,提供了PropertyPlaceholderConfigurer 去告訴Spring從外部屬性文件加載特定的配置。
爲了啓用這個特性,需要在Bean 裝配文件裏面配置如下的bean.

 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:database.properties</value>
   </list>
  </property>
 </bean>

現在我們就可以再Bean裝配文件裏面用佔位變量替代硬代碼的配置。
從語法上講,佔位變量的形式是${variable}
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="${datasource.jndiname}"/>
</bean> 

上述由JNDI查詢數據源進行配置數據庫

Spring程序經常會運行在一個j2ee應用程序服務器裏,比如JBoss甚至Tomcat等WEB容器裏。
這些服務程序可以配置爲通過JNDI獲取數據源。
好處:他們完全可以在程序之外進行管理。程序本身只需要訪問數據庫時 請求數據源即可。

 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="/jdbc/aps "/>java:comp/env/jdbc/aps
  <property name="resourceRef" value="true"/>
 </bean> 
 當resourceRef屬性爲true時,jndiName會被添加java:comp/env/
 
 詳細瞭解classpath:用法 ,請看下一篇

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