文档章节

c3p0 数据源密码加密

晚点回家
 晚点回家
发布于 2017/07/26 08:49
字数 274
阅读 4
收藏 0
点赞 0
评论 0

application-context.xml  数据源配置 

需要注意的是: <property name="properties" ref="dataSourceProperties"/> 需要写在最前面  不然可能会出现密码错误等问题

bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="properties" ref="dataSourceProperties"/>
        <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="autoCommitOnClose" value="true"/>
        <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/>
        <property name="initialPoolSize" value="${cpool.minPoolSize}"/>
        <property name="minPoolSize" value="${cpool.minPoolSize}"/>
        <property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
        <property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
        <property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
        <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>
    </bean>
    <bean id="dataSourceProperties" class="com.ezsite.doc.PropertiesEncryptFactoryBean">  
        <property name="properties">  
            <props>  
                <prop key="user">加密后的用户名</prop>  
                <prop key="password">加密后的密码</prop>  
            </props>  
        </property>  
    </bean>

实现类

需要实现FactoryBean  否则会报数据类型错误

package com.ezsite.doc;

import java.util.Properties;

import org.apache.commons.codec.binary.Base64;
import org.springframework.beans.factory.FactoryBean;

import sun.misc.BASE64Decoder;

public class PropertiesEncryptFactoryBean implements FactoryBean{
	
	private Properties properties;  
    
    public Object getObject() throws Exception {  
        return getProperties();  
    }  
  
    public Class getObjectType() {  
        return java.util.Properties.class;  
    }  
  
    public boolean isSingleton() {  
        return true;  
    }  
  
    public Properties getProperties() {  
        return properties;  
    }  
  
    public void setProperties(Properties inProperties) {  
        this.properties = inProperties;  
        String originalUsername = properties.getProperty("user");  
        String originalPassword = properties.getProperty("password");  
        if (originalUsername != null){  
            String newUsername = deEncryptPassword(originalUsername );  
            properties.put("user", newUsername);  
        }  
        if (originalPassword != null){  
            String newPassword = deEncryptPassword(originalPassword);  
            properties.put("password", newPassword);  
        }  
    }  
      
    private String deEncryptPassword(String originalPassword){  
        return deEncryptString(originalPassword);  
    }  
    //相关解密操作
    private  String deEncryptString(String originalString){  
    	 
		return originalString;    
    }  
}

转载地址:http://xinklabi.iteye.com/blog/2173220

© 著作权归作者所有

共有 人打赏支持
晚点回家
粉丝 0
博文 3
码字总数 1485
作品 0
广州
Spring之jdbc Template实现CRUD操作

Spring为各种持久化技术都提供了简单操作的模板回调。比如jdbc、hibernate、Mybatis以及JPA等。 这里我们就以JDBC为例,看看JDBC template怎么实现CRUD操作。 JdbcTemplate主要提供以下几类方...

Java攻城玩家 ⋅ 05/31 ⋅ 0

连接池详解,c3p0与dbcp的区别!

连接池: 连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。这项技术能明显提高对数据库操作的性能。 连接池的好处: (1)对于大多数应用程序,当它们正...

IT_laobai ⋅ 前天 ⋅ 0

tomcat JDBC连接池c3p0连接资源耗尽导致tomcat实例对应的app移动端无法访问。

tomcat app手机端程序无法打开了。 直接查看tomcat日志: [test@web01 logs]$ tail catalina.out at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at......

sandshell ⋅ 05/04 ⋅ 0

简单的 ORM 框架 - leopard-jdbc

leopard 是一个简单的 orm 框架,基于注解扫描,实现了自动建表,增删改查,多表外键连接,分页查询,还有简单的逆向工程。 一. leopard 快速上手: 引入核心 jar 包 leopard-orm.jar 引入所...

akcgf ⋅ 04/26 ⋅ 0

MyBatis系列目录--7. Mybatis与Spring最佳整合

转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662 1. 整合思路 (1) SqlSessionFactory由Spring作为单例管理 (2) spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSe...

付磊-起扬 ⋅ 2015/09/03 ⋅ 0

Linux下部署项目到TomCat,C3p0连接MySQL数据库出错

在本地运行测试正常,部署到Linux-CentOS上后,其他都正常,就是连不上数据库 [root@Linux1 logs]# tail -f catalina.out 五月 23, 2018 2:26:07 上午 org.apache.catalina.startup.HostConf...

LousenJay ⋅ 05/22 ⋅ 0

Jfinal使用Druid连接池连接informix数据库时出现奇怪语法报错

完全相同的项目,相同的config,相同的sql代码,在用oracle数据库不会报错,用c3p0也不会报错,只有同时使用druid和informix时才报这个异常 只要涉及到informix数据库访问就报这个异常[ERRO...

风逸灬杰 ⋅ 05/28 ⋅ 0

在windows下部署包含C3P0的war包没问题,部署到linux下面的tomcat下C3P0报错

错误原因: 20-Jun-2018 19:44:27.353 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath ......

大明地盘 ⋅ 昨天 ⋅ 0

Spring JdbcTemplate使用详解

JdbcTemplate简介   Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。   JdbcTemplate位于中。其全限定命名为org.spr...

u012843873 ⋅ 04/23 ⋅ 0

Leytton/ThinkJD

中文文档 English Document 最新版本 V1.2.3 1 简介 ,又名,一个简洁而强大的开源JDBC操作库。你可以使用Java像框架的M方法一样,。 先睹为快: //数据库配置(只需调用一次)D.setDbConfig(...

Leytton ⋅ 04/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud构建微服务架构—创建“服务注册中心”

创建一个基础的Spring Boot工程,命名为eureka-server,并在pom.xml中引入需要的依赖内容: <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-par......

itcloud ⋅ 17分钟前 ⋅ 0

拖动

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>event</title> <style> #box { width: 100px; height: 100px; background-color: aquamarine; position: absolute; } </style......

fyliujj ⋅ 20分钟前 ⋅ 0

es6 polyfill array

polyfill之javascript函数的兼容写法——Array篇 1. Array.isArray(obj) if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === '[objec......

球球 ⋅ 22分钟前 ⋅ 0

kibana启动异常

检查一下:kibana.yml 每一对key:value中,冒号之后应有空格。

增删改查1 ⋅ 24分钟前 ⋅ 0

js修改img的src属性刷新图片时的图片缓存问题

问题:上传一张图片,通过js更新src属性刷新图片使其即时显示时, 当img的src当前的url与上次地址无变化时(只更改图片,名称不变,不同图片名称相同)图片不变化(仍显示原来的图片) 但通过...

HaierBrother ⋅ 24分钟前 ⋅ 0

Mysql

1.Jdbc Url 设置allowMultiQueries为true和false mysql的批量更新是要我们主动去设置的, 就是在数据库的连接url上设置一下,加上* &allowMultiQueries=true *即可。 参数名称 参数说明 缺省...

瑟青豆 ⋅ 27分钟前 ⋅ 0

mysql导出导入表结构与数据

当我们需要进行数据迁移时,mysql自带的mysqldump会是最好的方式。 1.导出某张表的结构和数据 首先,我们应当使用服务器,打开终端,连接到所需要导出的表所在的服务器上。执行命令: mysqld...

hengbao5 ⋅ 28分钟前 ⋅ 0

世界杯也走向“比拼”大数据的时代

《日本经济新闻》6月19日报道称,俄罗斯足球世界杯已于6月14日揭开战幕。作为第21次举办的足球世界杯,如何活用大数据有可能成为决定各支球队胜负的重要因素。从对阵球队的分析到战术建议,还...

加米谷大数据 ⋅ 28分钟前 ⋅ 0

金额转为千分制,金额转中文大写

金额转关为大写 /** 数字金额大写转换(可以处理整数,小数,负数) */ function digitUppercase(n){ if(!n) reutrn "" let fraction = ['角', '分']; let digit = [...

YXMBetter ⋅ 31分钟前 ⋅ 0

开发利器JRebel部署SpringBoot项目

不要以为年纪轻轻就跌倒了人生谷底,未来还有更大的下降空间等着你。 idea下载和安装JRebel 激活JRebel 访问https://my.jrebel.com/ 使用facebook或twitter登录 勾选 Build project automati...

郑龙飞 ⋅ 37分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部