Apache Commons DBCP是個好東西,實現了DataSource介面,包括資料庫連接池管理,好就好在它提供的功能僅此而已,不多不少足夠使用。查了一下關於dbcp的配置:
#JDBC串連需要用到的四個基本參數(以Oracle為例)
- jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
- jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:DBSERVER
- jdbc.username=user
- jdbc.password=pass
#初始化串連數量
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"><br /><property name="locations"><br /><list><br /><value>/WEB-INF/etc/context.properties</value><br /></list><br /></property><br /></bean></p><p><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><br /> <property name="driverClassName" value="${Project.JdbcDriver}"/><br /> <property name="url" value="${Project.JdbcUrl}"/><br /> <property name="maxIdle" value="20"/><br /> <property name="initialSize" value="10"><br /></bean>