Настройка пула подключений в Spring MVC - PullRequest
3 голосов
/ 24 августа 2010

Как настроить пул соединений в Spring MVC? Я работаю над интранет-сайтом, работающим на Spring MVC 2.5 и jQuery. Это моя первая попытка веб-разработки.

Я не уверен, но я использую это только в моем файле конфигурации Spring, и я видел это в пошаговом руководстве по MVC Spring

<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 ]

3 голосов
/ 24 августа 2010

Возможно, вы захотите взглянуть на 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 голос
/ 11 июня 2013
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.
1 голос
/ 25 августа 2010

Ваша текущая настройка верна, все, что вам нужно сделать, чтобы использовать базовый пул соединений, - это использовать реализацию DataSource, предоставляемую библиотекой пула соединений, в вашем случае Apache DBCP . См. этот пост для нескольких ссылок на другие альтернативы, C3P0 является одним из них.

Обратите внимание, что когда вы на самом деле используете бин DataSource, вы вводите оболочку в SimpleJdbcTemplate или используете DataSourceUtils для получения соединения - см. Spring JDBC Documentation

...