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万代码量,达到技术经理的代码掌握量。

  • 相关阅读:
    LeetCode 1275. 找出井字棋的获胜者 Find Winner on a Tic Tac Toe Game
    LeetCode 307. 区域和检索
    LeetCode 1271 十六进制魔术数字 Hexspeak
    秋实大哥与花 线段树模板
    AcWing 835. Trie字符串统计
    Leetcode 216. 组合总和 III
    Mybatis 示例之 复杂(complex)属性(property)
    Mybatis 示例之 复杂(complex)属性(property)
    Mybatis 高级结果映射 ResultMap Association Collection
    Mybatis 高级结果映射 ResultMap Association Collection
  • 原文地址:https://www.cnblogs.com/gojava/p/3584519.html
Copyright © 2011-2022 走看看