У меня есть приложение Spring/JPA с, в спящем режиме как поставщик JPA. Я настроил источник данных C3P0 в Spring через:
<bean id="myJdbcDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- Connection properties -->
<property name="driverClass" value="$DS{database.class}" />
<property name="jdbcUrl" value="$DS{database.url}" />
<property name="user" value="$DS{database.username}" />
<property name="password" value="$DS{database.password}" />
<!-- Pool properties -->
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="20" />
<property name="maxStatements" value="50" />
<property name="idleConnectionTestPeriod" value="3000" />
<property name="loginTimeout" value="300" />
Я затем указал этот источник данных на фабрике менеджера по объекту Spring следующим образом:
<bean id="myLocalEmf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myapp-core" />
<property name="dataSource" ref="myJdbcDataSource" />
</bean>
Однако я недавно заметил при просмотре артефактов знатока "быть-в-спящем-режиме-c3p0".Что это такое? Это - что-то, что я должен использовать? Или мне уже настроили это правильно?
hibernate-c3p0.jar предоставляет класс org.hibernate.connection.C3P0ConnectionProvider
, основанную на C3P0 реализацию контракта Hibernate ConnectionProvider
. Вам понадобится этот артефакт, если вы хотите использовать C3P0 в качестве автономного пула соединений Hibernate (который вы настраиваете с помощью файла hibernate.cfg.xml
). Поскольку вы используете Spring, он вам не нужен.
org.hibernate: hibernate-c3p0 выглядит как модуль, который вы бы использовали, если бы вы настраивали Hibernate для прямого использования C3P0.
Он вам не понадобится, если опубликованная вами конфигурация работает для вас - не так ли?