您的位置:首页 > 编程语言 > Java开发

java web项目中的properties文件中的属性值在启动后进行修改(数据库密码加密等)

2016-07-28 19:34 429 查看

一、场景:

我们在db.properties中配置了数据库连接信息,数据库密码是经过加密的,我们希望对配置文件中的密码进行加密处理,如配置password=123,经过加密,实际使用时是password=avbsdfs。



二、实现:通过继承PropertyPlaceholderConfigurer改写loadProperties方法。

原使用:

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


自定义DecryptPropertyPlaceholderConfigurer,继承PropertyPlaceholderConfigurer,在loadProperties中做你想做的操作:

public class DecryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {

private Resource[] locations;

public void setLocations(Resource[] locations) {
this.locations = locations;
}

public void loadProperties(Properties props) throws IOException {
if (this.locations != null) {
for(Resource location : locations){
props.load(location.getInputStream());
}
props.put("name", "Kevin-change");
}
}
}


现使用:

<bean id="propertyPlaceholderConfigurer" class="com.ehsy.svccfg.DecryptPropertyPlaceholderConfigurer">
<property name="locations" value="classpath:db.properties"/>
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息