使用数据源和使用hibernateProperties有什么区别。我想在我的应用程序中使用带弹簧的c3P0。我找到了两种方法,但我无法理解两者之间的区别
首先:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
depends-on="dataSource">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.use_sql_comments">false</prop>
</props>
</property>
<bean id="dataSource" destroy-method="close"
class="com.mchange.v2.c3p0.ComboPooledDataSource" >
<property name="maxPoolSize" value="10" />
<property name="numHelperThreads" value="5" />
</bean>
第二
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
>
<property name="hibernateProperties">
<props>
<property name="hibernate.c3p0.maxSize" value="100" />
<property name="hibernate.c3p0.numHelperThreads" value="5" />>
</props>
</property>
</bean>
答案 0 :(得分:2)
首先获得Spring托管数据源,您也可以将其用于JdbcTemplate或其他工作。
第二个你得到一个hibernate托管的数据源,它不能被Spring重用。
我强烈建议使用第一种方法,因为它也可以很容易地替换您的数据源进行测试(通过将其替换为内存数据库)或者用JNDI查找替换它。