2010-08-24 74 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.