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

来源:互联网 发布:在淘宝买狗狗安全吗 编辑:程序博客网 时间:2024/06/05 00:21

一、场景:

我们在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>





0 0
原创粉丝点击