解密Spring加载的Properties文件
2016-03-21 17:39
501 查看
Spring的框架中,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类可以将.properties(key/value形式)文件中
一些动态设定的值(value),在XML中替换为占位该键($key$)的值,
.properties文件可以根据客户需求,自定义一些相关的参数,这样的设计可提供程序的灵活性。
xml中的配置文件
通过如上配置就可以对配置文件进行解密操作
一些动态设定的值(value),在XML中替换为占位该键($key$)的值,
.properties文件可以根据客户需求,自定义一些相关的参数,这样的设计可提供程序的灵活性。
xml中的配置文件
<bean id="propertyConfigurer" class="com.datasure.util.filter.EncryptablePropertyPlaceholderConfigurer"> <property name="locations"> <list><value>classpath:jdbc.properties</value></list> </property> </bean>
public class EncryptablePropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer { private static final String key = "helloworld"; protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException { try { Des des = new Des(); String username = props.getProperty("jdbc.username"); if (username != null) { props.setProperty("jdbc.username", des.Decrypt(username, des.hex2byte(key))); } String password = props.getProperty("jdbc.password"); if (password != null) { props.setProperty("jdbc.password", des.Decrypt(password, des.hex2byte(key))); } String url = props.getProperty("jdbc.url"); if (url != null) { props.setProperty("jdbc.url", des.Decrypt(url, des.hex2byte(key))); } String driverClassName = props.getProperty("jdbc.driverClassName"); if(driverClassName != null){ props.setProperty("jdbc.driverClassName", des.Decrypt(driverClassName, des.hex2byte(key))); } super.processProperties(beanFactory, props); } catch (Exception e) { e.printStackTrace(); throw new BeanInitializationException(e.getMessage()); } } }
通过如上配置就可以对配置文件进行解密操作
相关文章推荐
- Java反射机制
- Java多线程系列--“JUC锁”06之 Condition条件
- 字符流:Writer、Reader
- Java基础学习第二十天——异常与FILE类
- 读取.sql文件,转化为javabean
- Getting “CHECKOUT can only be performed on a version resource” when trying to commit using Eclipse s
- java 正则表达式 验证邮箱
- 3. Longest Substring Without Repeating Characters | Java最短代码实现
- 字节输人流:InputStream
- SpringMVC访问静态资源
- DAO,Service,Controller各层之间的关系
- 详解Java动态代理的实现机制
- springMVC—springMVC拦截器
- java实体类里有个'内部实体类'的调用方法
- 字节输出流
- java 读取pdf、word、Excel文件
- 【转】深入理解 Java 垃圾回收机制
- Java学习笔记--虚拟机类加载机制2
- Alluxio文件操作Java API示例
- 学习Spring必学的Java基础知识(7)----事务基础知识