在Spring MVC中设置连接池

时间:2010-08-24 00:56:58

标签: spring spring-mvc connection-pooling

如何在Spring MVC中设置连接池?我正在使用由Spring MVC 2.5和jQuery驱动的Intranet网站。这是我第一次尝试开发Web。

我不确定但是,我只是在我的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>

这在开发期间看起来很好并且连接速度很快但我不确定如果同时连接许多用户,这是否仍然适用。

我怎样才能做到这一点?我已经读过这不是一个最佳的连接数据源。

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

您当前的设置是正确的,使用基本连接池所需要做的就是使用连接池库提供的DataSource实现,在您的情况Apache DBCP中。请参阅this post以获取其他替代方案的一些链接,C3P0就是其中之一。

请注意,当您实际使用DataSource bean时,您将其注入SimpleJdbcTemplate或使用DataSourceUtils来获取连接 - 请参阅Spring JDBC Documentation

答案 2 :(得分: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.