• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

Spring中PropertyPlaceholderConfigurer类的用法教程

JAVA web前端中文站 2年前 (2017-09-27) 683次浏览 未收录 0个评论

我们都知道 PropertyPlaceholderConfigurer 是用来读取配置文件的。一般我们只需简单的配置它即可,很少有对它进行重新改造的。本文将列举一个例子,如何通过 PropertyPlaceholderConfigurer 来读取加解密的配置信息。

更多精彩内容请看 web 前端中文站
http://www.lisa33xiaoq.net 可按 Ctrl + D 进行收藏

PropertyPlaceholderConfigurer 是个 bean 工厂后置处理器的实现,也就是 BeanFactoryPostProcessor 接口的一个实现。PropertyPlaceholderConfigurer 可以将上下文(配置文 件)中的属性值放在另一个单独的标准 java Properties 文件中去。在 XML 文件中用${key}替换指定的 properties 文件中的值。这样的话,只需要对 properties 文件进 行修改,而不用对 xml 配置文件进行修改。

通常我的配置如下:

 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  <property name="locations">   <list>    <value>classpath:jdbc.properties</value>    <value>classpath:redis.properties</value>   </list>  </property>  <property name="fileEncoding">   <value>UTF-8</value>  </property> </bean>

现在想一下,如果我们的配置文件中对某些属性进行了加密,这时再使用 PropertyPlaceholderConfigurer 读取配置文件我们想要加密前的内容该怎么办?

答案就是重写 PropertyPlaceholderConfigurer。除了数据库的配置信息我们放在配置文件,然后可以通过 druid 进行加解密。但是配置的邮箱信息呢?

这时重写它就显得很有必要。PropertyPlaceholderConfigurer 起的作用就是将占位符指向的数据库配置信息放在 bean 中定义的工具。

下面来看一个通过 PropertyPlaceholderConfigurer 读取加解密配置文件的案例:

 package com.lisa33xiaoq.net.plugin; import com.zheng.common.util.AESUtil; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; //支持加密配置文件插件 public class EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {  private String[] propertyNames = {   "master.jdbc.password", "slave.jdbc.password", "generator.jdbc.password", "master.redis.password"  };  //解密指定 propertyName 的加密属性值  @Override  protected String convertProperty(String propertyName, String propertyValue) {   for (String p : propertyNames) {    if (p.equalsIgnoreCase(propertyName)) {     return AESUtil.AESDecode(propertyValue);    }   }   return super.convertProperty(propertyName, propertyValue);  } }

我们只需重写 PropertyPlaceholderConfigurer 类的 convertProperty 方法即可,然后在该方法中实现解密工作。

本文原文出处:web 前端中文站: » Spring 中 PropertyPlaceholderConfigurer 类的用法教程

【注:本文源自网络文章资源,由站长整理发布】


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Spring 中 PropertyPlaceholderConfigurer 类的用法教程
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址