阿里数据源Druid配置详情

  <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>
原文地址:https://www.cnblogs.com/javafucker/p/8662474.html