使用PropertyPlaceholderConfigurer 类:
在Spring 的PropertyPlaceholderConfigurer 类是实现BeanFactoryProcessor 接口中非常有用的类。它用于Spring 从外部属性文件中载入属性,并使用这些属性值替换Spring 配置文件中的占位符变量(${varible})。
示例:
属性文件:
jdbc.url=jdbc:mysql://127.0.0.1:3306/demo
jdbc.driverClassName=com.mysql.jdbc.Driver
Spring配置文件:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/db/jdbc.properties</value>
</list>
</property>
</bean>
那么,在Spring配置文件中,可以直接使用属性名称得到值:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
也可以自己写个类, 继承并且重写其中的
protected String resolvePlaceholder(String placeholder, Properties props)
方法:
String s = props.getProperty(placeholder);
if ("jdbc.password".equals(placeholder) && s != null)
{
s = Encrypter.decrypt(s);
}
对密码进行加密解密。
写到配置文件中:<bean id="propertyConfigurer" class="com.woyo.business.util.DecryptPropertyPlaceholderConfigurer">