Apache Commons DBCP是个好东西,实现了DataSource接口,包括数据库连接池管理,好就好在它提供的功能仅此而已,不多不少足够使用。查了一下关于dbcp的配置:
#JDBC连接需要用到的四个基本参数(以Oracle为例)
#初始化连接数量
dataSource.initialSize=10
#最大空闲连接数量
dataSource.maxIdle=20
#最小空闲连接数量
dataSource.minIdle=5
#最大连接数量
dataSource.maxActive=50
#是否在自动回收超时连接的时候打印连接的超时错误
dataSource.logAbandoned=true
#是否自动回收超时连接
dataSource.removeAbandoned=true
#超时时间(以秒数为单位)
#设置超时时间有一个要注意的地方,超时时间=现在的时间-程序中创建Connection的时间,如果maxActive比较大,比如超过100,那么removeAbandonedTimeout可以设置长一点比如180,也就是三分钟无响应的连接进行回收
dataSource.removeAbandonedTimeout=180
#超时等待时间以毫秒为单位
#maxWait代表当Connection用尽了,多久之后进行回收丢失连接
dataSource.maxWait=1000
在Spring中,这些配置都可以直接配置到一个Bean的参数里去,但是推荐写到一个properties文件里,这样替换起来比较方便。虽然都是不用改代码的效果,Spring提供了一个PropertyPlaceholderConfigurer
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>/WEB-INF/etc/context.properties</value> </list> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${Project.JdbcDriver}"/> <property name="url" value="${Project.JdbcUrl}"/> <property name="maxIdle" value="20"/> <property name="initialSize" value="10"> </bean>