【Spring】基于c3p0连接池,实现数据库加解密连接MySQL数据库

1、spring连接数据库的xml设置如下:

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="properties">
            <bean class="com.asiainfo.yuntie.util.DatasourcePropertiesFactory" factory-method="getProperties">
                <constructor-arg type="java.lang.String">
                    <value>${jdbc.password}value>
                constructor-arg>
            bean>
        property>

        <property name="driverClass" value="${jdbc.driverClassName}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>

        
        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="10"/>
        
        <property name="autoCommitOnClose" value="false"/>
        
        <property name="checkoutTimeout" value="1000"/>
        
        <property name="acquireRetryAttempts" value="2"/>
         
        <property name="idleConnectionTestPeriod" value="18000"/>
    bean>

这里写图片描述

    (1)解密类的完全限定名;
    (2)解密方法;
    (3)properties文件中对应的key;
     余下设置针对不同需求自己定制即可。

2、加解密类:

public class DatasourcePropertiesFactory {
    private static final String PROP_PASSWORD = "password";

    private static final Log logger = LogFactory.getLog(DatasourcePropertiesFactory.class);

    /**
     * 
     * @Title: getProperties   
     * @Description: 获取数据库密码
     * @param: @param password
     * @param: @return
     * @param: @throws Exception     
     * @return: Properties    
     * @author tanglei 
     * @throws
     */
    public static Properties getProperties(String password) throws Exception {
        Properties properties = new Properties();
            try {
                //解密密码
                properties.setProperty(PROP_PASSWORD, EncryptAndDecrypt.Decrypt(password));
            } catch (Exception e) {
                logger.error("DatasourcePropertiesFactory getProperties is error!", e);
            }

        return properties;
    }
}
这里的 EncryptAndDecrypt.Decrypt(password) 就是我所用的加解密方法,由于安全问题这里就不公开这个类里面的具体方法,找一个或者自己写一个都可以,只要保证可以正常加解密即可。

3、db.properties文件设置:

【Spring】基于c3p0连接池,实现数据库加解密连接MySQL数据库_第1张图片

你可能感兴趣的:(SpringMVC)