在Spring MVC中设置连接池

问题描述 投票:2回答:3

如何在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>

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

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

spring spring-mvc connection-pooling
3个回答
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
投票

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

请注意,当您实际使用DataSource bean时,您将注入包装在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.
© www.soinside.com 2019 - 2024. All rights reserved.