2010-12-19 41 views

回答

3

Spring爲此提供了一個名爲PropertyPlaceholderConfigurerBeanFactoryPostProcessor

下面是一個例子:

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

<bean id="dataSource" destroy-method="close" 
    class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}"/> 
    <property name="url" value="${jdbc.url}"/> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}"/> 
</bean> 

在CLASSPATH地方一個名爲jdbc.properties如圖

jdbc.driverClassName=org.postgresql.Driver 
jdbc.url=jdbc:postgresql://localhost/default 
jdbc.username=sa 
jdbc.password=sa 

當彈簧上下文中創建於$傳遞的每個值{..}是認爲這是一個關鍵,值看着PropertyPlaceholderConfigurer bean。如果密鑰不存在,則會引發異常。如果您不想引發異常,則將屬性ignoreUnresolvablePlaceholders設置爲true,那麼如果找不到密鑰,則該值將作爲密鑰本身。