<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>