<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${datasource.url}" /> <property name="username" value="${datasource.name}" /> <property name="password" value="${datasource.password}" /> <property name="connectionProperties" value="config.decrypt=true" /> <property name="filters" value="config,log4j" /> <property name="maxActive" value="${datasource.maxActive}" /> <property name="initialSize" value="${datasource.initialiSize}" /> <property name="maxWait" value="60000" /> <property name="minIdle" value="1" /> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="validationQuery" value="SELECT 'x' from dual " /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> </bean>
connectionProperties:配置連接的一些屬性,這里配置的config.decrypt=true,表示提供的密碼是加密過的
filters:就是一個攔截器,可配置監控、日志等
maxActive:最大連接數個數
initialSize:初始化連接數個數
minIdle:空閑的連接數個數
maxWait:獲取連接最大等待時間
timeBetweenEvictionRunsMillis:檢測連接時間,單位毫秒
minEvictableIdleTimeMillis:檢測未關閉連接大於該值則關閉連接,單位毫秒
validationQuery:系統啟動時通過該sql語句驗證數據庫是否可用,例如oracle用SELECT 'x' from dual,mysql用SELECT 'x'
testWhileIdle:啟用空閑連接檢測,以便回收
testOnBorrow:從連接池獲取連接時,是否檢測連接可用性,開啟性能會有些許影響
testOnReturn:釋放連接到連接池時,是否檢測連接可用性,開啟性能會有些許影響
poolPreparedStatements:開啟psCache緩存,oracle請設置為true,非oracle請設置為false
maxPoolPreparedStatementPerConnectionSize:最大緩存數,非oracle請設置為0
