C3P0的Spring配置与Hibernate?
我有一个Spring/JPA应用程序,Hibernate作为JPA提供者。我通过以下方式在Spring中配置了C3P0数据源: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"
<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的hibernateConnectionProvider
契约实现。当您想要使用C3P0作为Hibernate的独立连接池(通过Hibernate.cfg.xml
文件配置)时,您需要这个工件。既然您使用的是Spring,您就不需要它了。为什么它是一个当然。您不能太确定是什么意思?有没有任何理由/优势可能意味着使用hibernate-c3p0版本是一个更好的主意,或者它们在功能上是等效的?