Spec-Zone .ru
спецификации, руководства, описания, API

21.3.13.3. Объединение в пул соединения с Spring

Во многих ситуациях, таких как веб-приложения, будет большое количество маленьких транзакций базы данных. Когда дело обстоит так, обычно имеет смысл создавать пул соединений с базой данных, доступных для веб-запросов как необходимый. Хотя MySQL не порождает дополнительный процесс, когда соединение делается, есть все еще небольшое количество издержек, чтобы создать и установить соединение. Объединение в пул соединений также облегчает проблемы, такие как сбор большого количества сокетов в TIME_WAIT состояние.

Установка объединения в пул соединений MySQL с Spring столь же проста как изменение конфигурации источника данных в контексте приложения. Есть много конфигураций, которые мы можем использовать. Первый пример основан на Джакарте палата общин библиотека DBCP. Пример ниже заменяет исходную конфигурацию, которая была основана на DriverManagerDataSource с BasicDataSource DBCP.

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

Конфигурация этих двух решений очень подобна. Различие - то, что DBCP объединит соединения в пул с базой данных вместо того, чтобы создать новое соединение каждый раз, когда каждого требуют. Мы также установили параметры, здесь вызванные initialSize. Это говорит DBCP, что мы хотим три соединения в пуле, когда это создается.

Другой способ сконфигурировать объединение в пул соединения состоит в том, чтобы сконфигурировать источник данных в нашем сервере приложений J2EE. Используя JBoss как пример, можно установить пул соединения MySQL, создавая вызванный файл mysql-local-ds.xml и размещение этого в каталоге сервера/значения по умолчанию/развертывать в JBoss. Как только у нас есть эта установка, мы можем использовать JNDI, чтобы искать ее. С Spring этот поиск очень прост. Конфигурация источника данных похожа на это.

<jee:jndi-lookup id="dataSource" jndi-name="java:MySQL_DS"/>