<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="${database.driverClassName}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
<property name="initialSize" value="10"/> <!-- 初始化连接池大小 -->
<property name="minIdle" value="10"/> <!-- 连接池中保留最小连接数 -->
<property name="maxActive" value="60"/> <!-- 连接池中保留的最大连接数 -->
<property name="maxWait" value="60"/> <!-- 配置获取连接等待超时的时间 -->
<property name="minEvictableIdleTimeMillis" value="300000"/> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000"/> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="testWhileIdle" value="true"/> <!-- 空闲的时候检测,如果空闲时间大于 timeBetweenEvictionRunsMillis, 执行validationQuery检测连接是否有效 -->
<property name="validationQuery" value="select 'x'"/> <!-- 检测sql -->
<property name="testOnBorrow" value="false"/> <!-- 申请连接时执行validationQuery检测连接是否有效,开启这个配置会降低性能 线上不开启-->
<property name="testOnReturn" value="false"/> <!-- 归还连接时执行validationQuery检测连接是否有效,开启这个配置会降低性能 线上不开启-->
<property name="poolPreparedStatements" value="true"/> <!-- 开启PSCache 会消耗一定的内存 但能提高性能 -->
<property name="maxOpenPreparedStatements" value="20"/> <!-- 每个connection PSCache 缓存语句的数量 -->
</bean>