java properties 锁_spring--给配置文件.properties加密

11111111111编写类并继承PropertyPlaceholderConfigurer.java

package com.xx.encryptDecrypt;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

import org.apache.log4j.Logger;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

import com.xx.core.encrypt.EncryptUtil;

/**

*

* Title:PropertyPlaceholderConfigurerExt

* Description:PropertyPlaceholderConfigurer扩展

*/

public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer {

private static Map propertyMap;

private static Logger log = Logger.getLogger(PropertyPlaceholderConfigurerExt.class);

@Override

protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {

propertyMap = new HashMap();

String encryptNames = props.getProperty("encryptNames");

for (Object key : props.keySet()) {

String keyStr = key.toString();

String value = props.getProperty(keyStr);

if (encryptNames.contains(keyStr)) {

try {

props.setProperty(keyStr, EncryptUtil.decrypt(value));

propertyMap.put(keyStr, EncryptUtil.decrypt(value));

} catch (Exception e) {

e.printStackTrace();

log.info("解密出错,配置文件的密文可能有误!!!!!!!!!1");

}

} else {

propertyMap.put(keyStr, value);

}

}

System.out.println(propertyMap.toString());

super.processProperties(beanFactoryToProcess, props);

}

// 自定义一个方法,即根据key拿属性值,方便java代码中取属性值

public static String getProperty(String name) {

return propertyMap.get(name);

}

}

22222222222---spring上下文配置

3333333333---app.properties文件

账号密码改为密文

jdbc.username=bcc5b4b5174967b7

jdbc.password=bcc5b4b5174967b7

并添加键值对,作为解密标识

encryptNames=jdbc.username,jdbc.password

4444444444加密工具EncryptUtil.java不在贴出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值