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>
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- Spring整合WebSocket应用示例(上)
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- 监听器获取Spring配置文件的方法
- Java利用Sping框架编写RPC远程过程调用服务的教程
- springmvc 发送ajax出现中文乱码的解决方法汇总
- Spring MVC中Ajax实现二级联动的简单实例
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- 详解Java的MyBatis框架和Spring框架的整合运用
- struts2 spring整合fieldError问题