zoukankan      html  css  js  c++  java
  • Spring中保护数据库密码

    Spring中保护数据库密码由广州疯狂软件java培训分享:

    spring中通过配置文件配置数据源时,需要对数据库密码进行保护,具体方法可通过重写

    org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类中的

    processProperties方法来实现,具体步骤如下:

    spring中applicationContext.xml配置文件如下配置

    <bean id="propertyConfigurer"

    class="cn.com.agama.core.servlet.MyPropertyPlaceholderConfigurer">

    <property name="location">

    <value>classpath:conf/platform.properties</value>

    </property>

    </bean>

    <!-- 配置数据源 -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-

    method="close">

    <property name="driverClass" value="${db.driver}"/>

    <property name="jdbcUrl" value="${db.url}"/>

    <property name="user" value="${db.user}" />

    <property name="password" value="${db.pwd}" />

    <!-- 连接关闭时默认将所有未提交的操作回滚。默认为false --> ...

    其中MyPropertyPlaceholderConfigurer类为自定义类,继承了PropertyPlaceholderConfigurer类

    platform.properties为数据源配置文件

    db.user=root

    db.pwd=X8bkuTf6XoagthHofCYKrQ==

    密码已通过DES加密

    MyPropertyPlaceholderConfigurer类

    import java.util.Properties;

    import org.springframework.beans.BeansException;

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

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

    import cn.com.agama.util.EncryptUtil;

    /**

     * 自定义解析类,处理数据库密码加密

    * @since JDK1.4

     * @version 2014-2-25

     */

    public class MyPropertyPlaceholderConfigurer extends

                  PropertyPlaceholderConfigurer {

           /**

            * 加载配置文件

            */

                  protected void processProperties(

                         ConfigurableListableBeanFactory beanFactoryToProcess,

                         Properties props) throws BeansException {

                  //获取数据源中配置的密码项

                  String enCode = props.getProperty("db.pwd") ;

                  try {

                  //解密

                  String code = EncryptUtil.decrypt(enCode);

                  //重写赋值

                  props.setProperty("db.pwd", code);

                  } catch (Exception e) {

                         e.printStackTrace();

                  }

                  //返回父类方法

                  super.processProperties(beanFactoryToProcess, props);

           }

    }

    这样就可以保护数据库密码。学IT技术就学Java技术,疯狂软件Java培训机构,打造国内高级Java人才。

      疯狂软件Java培训优势

      1. Java是世界第一大编程语言,市场占有率达20%。

      2.广州最专业Java培训机构,多年教学经验。

      3.学员技术牛就业率最好,就业薪资都在5000以上。

      4.疯狂软件Java培训课程以项目实战带动教学,上课打破传统课堂模式,以实训项目贯穿教学,带领学生一起做企业真实项目。

      疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。高薪从IT名企请来项目经理为学员亲自授课,对学员进行实战教学,在疯狂java,通过大量全真经典企业级项目进行集中培训,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,成就感,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

      疯狂软件中心Java培训、iOS培训打造名企技术经理,成为中国软件产业的中流砥柱:全真企业需求,项目小组管理,大量实操项目的疯狂训练,企业全真案例教学,学成至少相当于两年工作经验“全真项目”教学,高强度的狂热训练,带领学生走近编程,感受编程,热爱编程,学完后产生凤凰涅槃般的重生。 “全真企业环境”模拟:以项目组形式管理,每个程序员(学员)对项目组长负责,组长向项目经理(老师)负责。以版本控制工具为引导,充分激发每个程序员对编程的激情 四个半月掌握近8~10万代码量,达到技术经理的代码掌握量。

  • 相关阅读:
    食谱
    食谱
    食谱
    无题
    重要通知
    幼儿食谱
    安卓应用开发常用代码
    安卓开发环境搭建
    《浪潮之巅》读书笔记——第11章 摩托罗拉
    预制redis数据
  • 原文地址:https://www.cnblogs.com/gojava/p/3584519.html
Copyright © 2011-2022 走看看