目标:要加密spring的jdbc配置文件的密码口令。
实现思路:重写加载器的方法,做到偷梁换柱,在真正使用配置之前完成解密。
1、扩展
package com.lavasoft.freamwork.ext.spring;

import com.lavasoft.freamwork.common.ThreeDES; 
import org.springframework.beans.BeansException; 
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; 
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

import java.util.Properties;

/** 
* 重写PropertyPlaceholderConfigurer的processProperties方法实现 

* @author leizhimin 2012-03-14 16:47 
*/ 
public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer{

@Override 
        protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) 
                        throws BeansException { 
                String password = props.getProperty("jdbc.password"); 
                if (password != null) { 
                        //解密jdbc.password属性值,并重新设置 
                        props.setProperty("jdbc.password", ThreeDES.getDesString(password)); 
                } 
                super.processProperties(beanFactory, props);


}

2、配置
<!-- 不加密时候使用 --> 
        <!--<context:property-placeholder location="classpath:jdbc.properties,classpath:tdmc.properties"/>-->

<!-- 加密时候使用 --> 
        <bean id="propertyConfig" class="com.lavasoft.freamwork.ext.spring.PropertyPlaceholderConfigurerExt"> 
                <property name="locations"> 
                        <list> 
                                <value>classpath:jdbc.properties</value> 
                                <value>classpath:tdmc.properties</value> 
                        </list> 
                </property> 
        </bean>

3、jdbc配置文件
jdbc.driver=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://10.87.30.32:3306/tdmc_leizm 
jdbc.user=root 
#jdbc.password=123456 
jdbc.password=tAeE2ib1ILE=
加密算法就不公开了。
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/807502,如需转载请自行联系原作者

加密Spring加载的Properties文件相关推荐

  1. springboot 加载一个properties文件转换为对象、List和Map数据结构

    springboot 加载一个properties文件转换为对象.List和Map数据结构 一.springboot 加载一个properties文件转换为对象 1.1.配置文件-blog.prope ...

  2. Spring框架——加载属性(properties)文件

    使用属性文件的好处 有效的减少硬编码(将配置信息直接写入Java代码中) 当应用程序的运行环境发生改变时,只需要修改属性文件,而不需要改变源码.提高了运维人员操作的便利性 加载属性文件的方式 使用注解 ...

  3. 解决Idea中maven项目druid连接池加载druid.properties文件时报 inStream parameter is null异常(原因有待考证)

    我认为应该是没有把druid.properties文件加载到输入流中. 原代码是 InputStream is = JDBCUtils.class.getClassLoader().getResour ...

  4. spring加载jar包中多个配置文件(转)

    转自:http://evan0625.iteye.com/blog/1598366 在使用spring加载jar包中的配置文件时,不支持通配符,需要一个一个引入,如下所示: Java代码 <co ...

  5. Spring加载properties文件的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取pro ...

  6. java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式

    java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...

  7. JBoss 系列十四:JBoss7/WildFly如何加载外部的文件或properties文件

    http://www.tuicool.com/articles/M7ZR3y 原文 http://blog.csdn.net/kylinsoong/article/details/12623997 主 ...

  8. spring加载xsd文件

    本文原文连接: http://blog.csdn.net/bluishglc/article/details/7596118 ,转载请注明出处! 有时候你会发现过去一直启动正常的系统,某天启动时会报出 ...

  9. 关于spring加载(下载)xsd文件失败的问题。

    一,前言 最近在开发的过程中,遇到了一个奇怪的问题,项目启启停停了几次之后,突然就跑不起来了.主要的报错信息如下: 1.Ignored XML validation warning schema_re ...

最新文章

  1. tf.reduce_mean tf.reduce_sum优化目标函数时如何选择
  2. SpringMVC简介-SpringMVC概述
  3. Django模型(三)
  4. P3511 [POI2010]MOS-Bridges(网络流/欧拉回路)
  5. python中range和arange的区别_Python3中range , arange 和linspace 的异同
  6. 贡献分选择结果——Teamwork
  7. python add_argument()用法解析
  8. matlab 高斯消去法程序,高斯消去法解线性方程的Matlab程序
  9. linux+arm+移除X11,关于ARM GTK/X11的问题,懂的指点一下
  10. 阿里云OSS创建Access,并连接到cloudreve
  11. C# 第三方控件 错误 LC-1
  12. Redis配置文件redis.conf配置详解
  13. html漂浮图片代码关闭,带关闭功能的漂浮图片代码
  14. 软件测试与质量保障之间的关系
  15. Windows 10快捷键入门(会更新)
  16. hdwiki上传附件不显示bug解决办法
  17. php cmyk图片,php – 使用Imagick将图像从RGB转换为CMYK
  18. 计算机大学生论文参考文献,大学生计算机外文外文 大学生计算机论文参考文献哪里找...
  19. 双击放大图片 手指移动图片位置
  20. autobahn-java-master,autobahn-0.5.0.jar的源码

热门文章

  1. wpf listview 切换数据源 位置不刷新_连载| 8 初识数据源
  2. MySQL执行计划extra中的using index 和 using where using index 的区别
  3. Handler.postDelayed(new Runnable)是否运行在主线程
  4. Python精通-Python元组操作
  5. php xdebug 中文手册,Xdebug文档(四)函数跟踪
  6. 【MyBatis框架】查询缓存-二级缓存原理
  7. 使用Qemu模拟Cortex-A9运行U-boot和Linux
  8. Laravel核心解读--Contracts契约
  9. mysql使用技巧,使用Mysql的小技巧总结
  10. 深入理解SpringBoot (4)