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;

/**
* <br>
* Title:PropertyPlaceholderConfigurerExt <br>
* Description:PropertyPlaceholderConfigurer扩展
*/
public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer {
private static Map<String, String> propertyMap;
private static Logger log = Logger.getLogger(PropertyPlaceholderConfigurerExt.class);
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
propertyMap = new HashMap<String, String>();
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上下文配置

<bean id="propertyConfigurer" class="com.ytd.encryptDecrypt.PropertyPlaceholderConfigurerExt">
         <property name="location" value="classpath:/conf/app.properties"/>
</bean>

3333333333---app.properties文件

账号密码改为密文

jdbc.username=bcc5b4b5174967b7
jdbc.password=bcc5b4b5174967b7

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

encryptNames=jdbc.username,jdbc.password

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

spring--给配置文件.properties加密的更多相关文章

  1. Spring Boot 配置文件密码加密两种方案

    Spring Boot 配置文件密码加密两种方案 jasypt 加解密 jasypt 是一个简单易用的加解密Java库,可以快速集成到 Spring 项目中.可以快速集成到 Spring Boot 项 ...

  2. spring boot 配置文件properties和YAML详解

    spring boot 配置文件properties和YAML详解 properties中配置信息并获取值. 1:在application.properties配置文件中添加: 根据提示创建直接创建. ...

  3. spring*.xml配置文件明文加密

    spring*.xml配置文件明文加密 说明:客户要求spring*.xml中Oracle/Redis/MongoDB的IP.端口.用户名.密码不能明文存放,接到需求的我,很无奈,但是还是的硬着头皮搞 ...

  4. spring jdbc配置文件进行加密解密

    最近做一个项目,安全上有点要求,就是要对数据库相关的配置进行加密,配置文件如下: #加密前#datasource.type=mysql #datasource.driverClassName=com. ...

  5. Java中如何获取spring中配置文件.properties中属性值

    通过spring配置properties文件 1 2 3 4 5 6 7 8 9 <bean id="propertyConfigurer"   class="co ...

  6. spring boot 配置文件加密数据库用户名/密码

    这篇文章为大家分享spring boot的配置文件properties文件里面使用经过加密的数据库用户名+密码,因为在自己做过的项目中,有这样的需求,尤其是一些大公司,或者说上市公司,是不会把这些敏感 ...

  7. java Spring使用配置文件读取jdbc.properties

    Spring使用配置文件读取jdbc.properties 在beans.xml中加入两个必须的bean [html]<bean id="propertyConfigurer" ...

  8. 【转】spring管理属性配置文件properties——使用PropertiesFactoryBean|spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer

     spring管理属性配置文件properties--使用PropertiesFactoryBean 对于属性配置,一般采用的是键值对的形式,如:key=value属性配置文件一般使用的是XXX.pr ...

  9. Spring boot 配置文件详解 (properties 和yml )

    从其他框架来看 我们都有自己的配置文件, hibernate有hbm,mybatis 有properties, 同样, Spring boot 也有全局配置文件. Springboot使用一个全局的配 ...

随机推荐

  1. [elk]bin/elasticsearch-sql-cli使用

    在探sql groupby语句 这个长久不用竟然忘记 part name age dep1 ara 22 dep1 arb 22 dep1 arc 22 dep2 ema 10 dep2 emc 11 ...

  2. 检查linux的磁盘空间占用

    先初步看看哪个目录占用最大$ df -h 然后细看遍历某目录的占用情况:$ sudo du -a /data  | sort -nr | less(单位是KB)

  3. iOS开发下载文件速度计算

    当我们写下载界面的时候,需要向用户展示每秒下载多少KB,这个时候就需要计算速度.如下: 我用的是AFNetworking来做下载的,我们拿AFHTTPRequestOperation来举列,AFHTT ...

  4. WordPress <= 4.6 命令执行漏洞(PHPMailer)复现分析

    漏洞信息 WordPress 是一种使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站.也可以把 WordPress 当作一个内容管理系统(C ...

  5. C语言 · 组合数

    组合数 从4个人中选2个人参加活动,一共有6种选法. 从n个人中选m个人参加活动,一共有多少种选法?下面的函数实现了这个功能. 请仔细分析代码,填写缺少的部分(下划线部分). 注意:请把填空的答案(仅 ...

  6. VMware Workstation 14.1.1 精简特别版

    VMware Workstation 精简特别版,由卡饭网友のcuiplay精简制作,集成许可证密钥安装即永久激活,该特别版最大特色可安装MAC OS X客户操作系统,此外添加了DELL SLIC 2 ...

  7. SkyWalking

    介绍 SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performance Management系统.他被用于追踪.监控和诊 ...

  8. HTTP缓存及其合理使用

    以前以为HTTP缓存是个简单的事,项目中遇到后才发觉关于缓存实践有挺深的学问. from几篇文章详见: 使用 HTTP 缓存:Etag, Last-Modified 与 Cache-Control 合 ...

  9. ubuntu cli

    查看安装包的路径 dpkg -L redis-server 防火墙 ufw redis 相关 service redis-server restart

  10. bootstrap 列表組

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...