文档章节

阿里数据源配置 针对数据源进行密码加密

LevelCoder
 LevelCoder
发布于 2017/07/20 23:06
字数 777
阅读 3
收藏 0

druid版本 : 1.0.27

mysql版本:5.5

java -cp D:/druid-1.0.27.jar com.alibaba.druid.filter.config.ConfigTools password

db.prop文件配置

#数据库驱动
connection.driverClass=com.mysql.jdbc.Driver
#数据库连接url
connection.url=jdbc\:mysql\://localhost\:3306/druid?useUnicode\=true&characterEncoding\=UTF-8
#数据库连接用户名
connection.username=root
#数据库连接密码 
connection.password=QglxhqQ1mRyCUKkTrCO9Q84OGiweSCf0le4cyYKJeRLU2PkqXmBDlbso0qmamnvMot2lv4+rbFA2UUN1oxj8yw==
#druid配置
#配置数据库密码是否需要解密,这里需要注意druid 1.0.16版本及以上的解密时需要同时配置publicKey,配置方式如下
druid.connectionProperties=config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM7bpmH+CloJivYJ2UsIM5+vsPXJnIHj3vouNIWBJD6kLVFJ4FakytivHXRtTF8NNGZ0kUcM7VypydZnlr8niXUCAwEAAQ==

#配置初始化大小、最小、最大
druid.initialSize=10
#最小连接池数量
druid.minIdle=10
#最大连接池数量
druid.maxActive=50
#获取连接时最大等待时间,单位毫秒
druid.maxWait=5000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒,有两个含义:1) Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接;2) testWhileIdle的判断依据
druid.timeBetweenEvictionRunsMillis=60000
#配置一个连接在池中最小生存的时间,单位是毫秒
druid.minEvictableIdleTimeMillis=300000
#验证语句
druid.validationQuery=SELECT 'x'
#检测连接是否有效的超时时间,单位:秒。底层调用jdbc Statement对象的void setQueryTimeout(int seconds)方法
druid.validationQueryTimeout=5
#申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
druid.testOnBorrow=false
#归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
druid.testOnReturn=false
#建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效
druid.testWhileIdle=true
#打开PSCache,并且指定每个连接上PSCache的大小,如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false
druid.poolPreparedStatements=false
druid.maxPoolPreparedStatementPerConnectionSize=100
#定期把监控数据输出到日志中
druid.timeBetweenLogStatsMillis=300000
#配置监控统计拦截的filters
druid.filters=config,stat,slf4j
#使用全局监控
druid.useGlobalDataSourceStat=true
#对于长时间不使用的连接强制关闭,禁用此配置,设置为false
druid.removeAbandoned=false
#超过30分钟开始关闭空闲连接
druid.removeAbandonedTimeout=1800
#将当前关闭动作记录到日志
druid.logAbandoned=true

 

database.xml配置

<bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">
      <property name="dbType" value="mysql" />
</bean>

<!-- 配置阿里连接池 -->
<bean id="dataSource"  name="dataSource"  class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
		<property name="driverClassName" value="${connection.driverClass}"/>
		<property name="url" value="${connection.url}" />
		<property name="username" value="${connection.username}" />
		<property name="password" value="${connection.password}" />
		<property name="initialSize" value="${druid.initialSize}" />
		<property name="minIdle" value="${druid.minIdle}" />
		<property name="maxActive" value="${druid.maxActive}" />
		<property name="maxWait" value="${druid.maxWait}" />
		<property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
		<property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
		<property name="validationQuery" value="${druid.validationQuery}" />
		<property name="testWhileIdle" value="${druid.testWhileIdle}" />
		<property name="testOnBorrow" value="${druid.testOnBorrow}" />
		<property name="testOnReturn" value="${druid.testOnReturn}" />
		<property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" />
		<property name="maxPoolPreparedStatementPerConnectionSize" value="${druid.maxPoolPreparedStatementPerConnectionSize}" />
		<property name="removeAbandoned" value="${druid.removeAbandoned}" />
		<property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" />
		<property name="logAbandoned" value="${druid.logAbandoned}" />
		<property name="connectionProperties" value="${druid.connectionProperties}" />
		<property name="useGlobalDataSourceStat" value="${druid.useGlobalDataSourceStat}" />
		<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
		<!-- 配置监控统计拦截的filters -->
		<property name="filters" value="${druid.filters}" />
		<property name="proxyFilters">
			<list>
				<ref bean="wall-filter"/>
			</list>
		</property>
		
		<!--<property name="filters" value="stat" /> -->
	</bean>

 

以上主要的是druid.connectionProperties的配置

 

© 著作权归作者所有

共有 人打赏支持
LevelCoder
粉丝 8
博文 92
码字总数 35812
作品 0
房山
高级程序员
多数据源切换问题和数据库密码加密的问题

1.问题所在 很多的时候,我们会对数据库的密码进行加密,因为为了安全性。如果使用阿里巴巴的Druid的数据源,可以使用阿里巴巴的加密技术,同时每次生成的private和public钥,是不相同的,所...

小车车
2016/07/30
43
0
上云迁移-海量数据迁移解决方案

摘要:传统数据存储在线下数据中心,存在成本高、运维难、性能难保障等等多方面的问题。阿里云提供闪电立方、OSS/NASImport、混合云存储阵列、镜像回源、302跳转、伪源站等六大解决方案为企业...

黄小凡
05/08
0
0
【shiro】入门程序

Apache Shiro是一个强大的且易用的java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,可以快速,轻松的获得任何应用程序,从最小的移动应用程序到最大的网络和...

binggetong
2017/12/19
0
0
认识黑客常用的入侵方法

数据驱动攻击 数据驱动攻击是指黑客向目标计算机发送或复制的表面上看来无害的特殊程序被执行时所发起的攻击。该攻击可以让黑客在目标计算机上修改与网络安全有关的文件,从而使黑客在下一次...

linuxprobe
2016/06/18
76
0
Kerbores/NUTZ-ONEKEY

NUTZ-ONEKEY NUTZ一键脚手架 概述 github地址 https://github.com/Kerbores/NUTZ-ONEKEY git@osc地址 http://git.oschina.net/ixion/NUTZ-ONEKEY 演示地址 https://thunder.kerbores.com 仓库......

Kerbores
2016/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
1
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
3
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
3
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部