一句話,Spring對Hibernate的整合,是在applicationContext.xml中配置sessionFactory來實現的,其中sessionFactory中要裝配dataSource。下面就詳細介紹dataSource Bean的配置。
先上代碼(比較齊全的屬性)
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driverClassName}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <!-- 連接初始值,連接池啟動時創建的連接數量的初始值 --> <property name="initialSize" value="${initialSize}" /> <!-- 連接池的最大值,同一時間可以從池分配的最多連接數量,0時無限制 --> <property name="maxActive" value="${maxActive}" /> <!-- 最大空閑值.當經過一個高峰時間后,連接池可以慢慢將已經用不到的連接慢慢釋放一部分,一直減少到maxIdle為止 ,0時無限制--> <property name="maxIdle" value="${maxIdle}" /> <!-- 最小空閑值.當空閑的連接數少於閥值時,連接池就會預申請去一些連接,以免洪峰來時來不及申請 --> <property name="minIdle" value="${minIdle}" /> <!-- 是否對已備語句進行池管理(布爾值),是否對PreparedStatement進行緩存 --> <property name="poolPreparedStatements" value="true" /> <!-- 是否對sql進行自動提交 --> <property name="defaultAutoCommit" value="true" /> </bean>
1.Bean的id為dataSource,對應的java類是BasicDataSource,這個類適用於配置基本類型的數據庫連接,如果要想進行多數據源,那么該Bean對應的java類就得用DynamicDataSource。
2.destroy-method,表示當該連接銷毀時候,會調用BasicDataSource類中的close方法。
3.driverClassName,url,username,password都是基本配置,這些屬性的value值是通過外部的屬性配置文件引入,具體怎么引入請參見http://blog.csdn.net/dreamrealised/article/details/9123199中的第三點propertyConfigurer。
4.接下來的屬性與數據庫連接池有關,數據庫連接池的有關基礎知識請參見http://blog.csdn.net/dreamrealised/article/details/9127563
1)initialSize,連接初始值,連接池啟動時創建的連接數量的初始值
2)maxActive,連接池的最大值,同一時間可以從池分配的最多連接數量,0時無限制
3)maxIdle,最大空閑值.當經過一個高峰時間后,連接池可以慢慢將已經用不到的連接慢慢釋放一部分,一直減少到maxIdle為止 ,0時無限制
4)minIdle,最小空閑值.當空閑的連接數少於閥值時,連接池就會預申請去一些連接,以免洪峰來時來不及申請
5)poolPreparedStatements,是否對已備語句進行池管理(布爾值),是否對PreparedStatement進行緩存
6)defaultAutoCommit,是否對sql進行自動提交,進行事務管理的時候往往要關閉jdbc的自動提交功能,事務管理詳見http://blog.csdn.net/dreamrealised/article/details/9123173