我想在我的应用程序中外部化一些变量的值,该应用程序使用spring来实现类似于属性文件的东西。
我如何才能做到这一点?
发布于 2010-12-19 13:02:09
Spring为此提供了一个名为PropertyPlaceholderConfigurer的BeanFactoryPostProcessor。
下面是一个例子:
<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>在类路径中放置一个名为jdbc.properties的文件,如下所示
jdbc.driverClassName=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost/default
jdbc.username=sa
jdbc.password=sa在创建spring上下文时,传递给${..}的每个值都被视为一个键,并在PropertyPlaceholderConfigurer bean中查看这些值。如果密钥不存在,则会抛出异常。如果不希望抛出异常,请将属性ignoreUnresolvablePlaceholders设置为true,如果找不到键,则将值设置为键本身。
https://stackoverflow.com/questions/4481678
复制相似问题