C3P0的Spring配置与Hibernate?

C3P0的Spring配置与Hibernate?,hibernate,spring,c3p0,Hibernate,Spring,C3p0,我有一个Spring/JPA应用程序,Hibernate作为JPA提供者。我通过以下方式在Spring中配置了C3P0数据源: <bean id="myJdbcDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!-- Connection properties --> <property name="driverClass"

我有一个Spring/JPA应用程序,Hibernate作为JPA提供者。我通过以下方式在Spring中配置了C3P0数据源:

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


然而,我最近在浏览maven工件时注意到一个“hibernate-c3p0”。这是什么?这是我需要用的东西吗?或者我已经正确地配置了它吗?

org.hibernate:hibernate-c3p0看起来像是将hibernate配置为直接使用c3p0时要使用的模块


假设您发布的配置对您有效,您不需要它-是吗?

hibernate-c3p0.jar提供了类
org.hibernate.connection.C3P0ConnectionProvider
,这是基于c3p0的hibernate
ConnectionProvider
契约实现。当您想要使用C3P0作为Hibernate的独立连接池(通过
Hibernate.cfg.xml
文件配置)时,您需要这个工件。既然您使用的是Spring,您就不需要它了。

为什么它是一个当然。您不能太确定是什么意思?有没有任何理由/优势可能意味着使用hibernate-c3p0版本是一个更好的主意,或者它们在功能上是等效的?