2010-12-19 39 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,那么如果找不到密钥,则该值将作为密钥本身。