2010-08-24 73 views
2

如何在Spring MVC中設置連接池?我正在使用由Spring MVC 2.5和jQuery支持的Intranet網站。這是我第一次嘗試web開發。在Spring MVC中設置連接池

我不知道,但是,我只在我的Spring配置文件使用這一點,我認爲這在Spring MVC教程一步一步

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}" /> 
    <property name="password" value="${jdbc.password}" /> 
</bean> 

<bean id="propertyConfigurer" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
    <list> 
    <value>classpath:jdbc.properties</value> 
    </list> 
    </property> 
</bean> 

開發過程中這看起來不錯,連接速度快,但如果許多用戶同時連接,我不確定這是否仍然成立。

我怎樣才能做到這一點?我已經讀過,這不是一個最佳的連接數據源。

回答

2

你可能想看看c3p0,它有一些強大的配置和優化可用。

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
    <property name="driverClass" value="..." /> 
    <property name="jdbcUrl" value="..." /> 
    <property name="user" value="..." /> 
    <property name="password" value="..." /> 
</bean> 
+0

作爲一個新的Spring開發者,我還沒有聽說過這個C3PO事情。但是當我搜索網頁時,我發現了一些有趣的討論。一個問題,但要清除我的想法,如果我創建一個像上面給出的bean,然後在我的構建路徑中添加所需的C3PO jar文件,我可以說我已經在做連接池?謝謝 – 2010-08-27 02:38:23

+0

「如果我按照上面給出的那樣創建一個bean,然後在我的構建路徑中添加所需的C3PO jar文件,我可以說我已經在做連接池了嗎?」 是的,你可以,但你可以說與BasicDataSource相同(它使用commons-pool)。 – earldouglas 2010-08-27 16:55:09

1

您當前的設置是正確的,你需要爲了使用基本的連接池做的是通過使用連接池庫提供的,你的情況Apache DBCP DataSource實現。請參閱this post瞭解其他替代方案的幾個鏈接,其中C3P0就是其中之一。

注意,當你實際使用你注入它包裝在一個SimpleJdbcTemplate或使用DataSourceUtils獲取連接數據源豆 - 見Spring JDBC Documentation

1
For connection Pooling 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}" /> 
    <property name="password" value="${jdbc.password}" /> 

//Add this two more parameters 
    <property name="**initialSize**" value="20" /> 
    <property name="**maxActive**" value="30" /> 


</bean> 

connection pool will create 20 database connection as initialSize is 20 and goes up to 30 Database connection if required as maxActive is 30.