<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 一、基本项: -->
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" /> <!-- 二、连接数量配置项: -->
<!-- 2.1、初始化连接数
默认值:0
-->
<property name="initialSize" value="100" />
<!-- 2.2、最大使用连接数
默认值:8
-->
<property name="maxActive" value="500" />
<!-- 2.3、最小空闲连接数 -->
<property name="minIdle" value="100" /> <!-- 三、连接测试项: -->
<!-- 3.1、获取连接的最大等待时间(毫秒) -->
<property name="maxWait" value="10000" />
<!-- 3.2、用来检测连接是否有效的sql,select 1:返回1 -->
<property name="validationQuery" value="select 1" />
<!-- 3.3、申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
默认值:true
-->
<property name="testOnBorrow" value="true" />
<!-- 3.4、归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
默认值:false
-->
<property name="testOnReturn" value="false" />
<!-- 3.5、建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效
默认值:false
-->
<property name="testWhileIdle" value="true" /> <!-- 四、Destory线程配置项: -->
<!-- 4.1、Destory线程执行检测的时间间隔,检测需要关闭的空闲连接(毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 4.2、Destory线程如果检测到当前连接的最后活跃时间和当前时间的差值大于minEvictableIdleTimeMillis,则关闭当前连接(毫秒) -->
<property name="minEvictableIdleTimeMillis" value="300000" /> <!-- 五、remove线程项: -->
<!-- 5.1、对于存活时间超过removeAbandonedTimeout的连接强制关闭 -->
<property name="removeAbandoned" value="true" />
<!-- 5.2、单位:秒 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 5.3、关闭abanded连接时输出错误日志
默认值:false
-->
<property name="logAbandoned" value="true" /> <!-- 六、监控项: -->
<!-- 6.1、监控数据库 -->
<property name="filters" value="mergeStat" /> <!-- 七、选配项: -->
<!-- 7.1、是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭
默认值:false
<property name="poolPreparedStatements" value="true" />
-->
<!-- 7.2、每个连接上PSCache的大小 ,要配置必须大于0,当大于0了poolPreparedStatements自动触发为true
在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
默认值:-1
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
-->
</bean>
注意:driverClassName属性可以不用配置,druid会根据url自动识别
更多数据源配置请查看:https://www.cnblogs.com/JavaSubin/p/5294721.html
druid数据源配置优化:https://blog.csdn.net/hetaohappy/article/details/51861015
druid的maven依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.25</version>
</dependency>