生产环境c3p0数据源用户名密码加密或解密
2016-07-29 00:00
423 查看
直接上代码,相信大部分人能看懂
Spring applicationContext.xml
注意,这里有个先后顺序的问题,
<property name="properties"> 必须要在前面
Spring applicationContext.xml
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="properties"> <bean class="cn.oa.util.C3P0DatasourcePropertiesFactory" factory-method="getProperties"> <constructor-arg type="java.lang.String"> <value>${jdbc.password}</value> </constructor-arg> <!-- 生产环境模式 ,才特殊处理加密密码--> <constructor-arg type="java.lang.String"> <value>${jdbc.password.encrypted}</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="password" value="${jdbc.password}"/> --> <property name="initialPoolSize" value="10"/> <property name="maxPoolSize" value="${db.pool.maxpoolsize}"/> <property name="minPoolSize" value="${db.pool.minpoolsize}"/> <property name="acquireIncrement" value="5"/> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。 --> <property name="idleConnectionTestPeriod" value="60"/><!--每30秒检查所有连接池中的空闲连接。--> </bean>
注意,这里有个先后顺序的问题,
<property name="properties"> 必须要在前面
import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import cn.biznest.mediacircle.util.encrypt.CryptoUtil; public class C3P0DatasourcePropertiesFactory { private static final String PRODUCTION_MODE = "true"; private static final String PROP_PASSWORD = "password"; private final static Logger logger = LoggerFactory.getLogger(C3P0DatasourcePropertiesFactory.class); public static Properties getProperties(String pwd, String production) throws Exception { Properties p = new Properties();
if (PRODUCTION_MODE.equals(production)) { try { p.setProperty(PROP_PASSWORD, CryptoUtil.decode(pwd));//解密操作
catch (Exception e) { logger.error("C3P0DatasourcePropertiesFactory getProperties is error!", e); throw e; } }else{ p.setProperty(PROP_PASSWORD, pwd); } return p; } }
相关文章推荐
- power designer 连接mysql提示“connection test failed”
- TOMCAT设置JDK
- java fina用法
- PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码
- 免安装oracle客户端使用pl sql连接oracle
- JDBC批量执行executeBatch
- oracle存储过程大数据量insert
- Exe4j破解_Exe4j注册码
- Math.random()方法,获取随机的范围的值
- ORACLE创建DBLINK
- 高维数组的理解
- Scomp 命令参数
- fckeditor常用操作(包括获取表格内容和设置内容等)
- jNetPcap-JAVA网络编程利器
- HAproxy + keepalived 实现双机热备
- JDK API 下载
- oracle 循环每5000提交一次
- oracle创建表空间和授权
- oracle分页
- 使用JDK自带jvisualvm监控tomcat