Sot*_*lis 6 java spring hibernate
我在我的Web应用程序中使用Spring 3.1.2和Hibernate 4.1.7.我想现在配置这两个.我有我的hibernate.cfg.xml档案:
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!--
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
我的webapp-servlet.xml春天配置文件:
<beans>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="configLocation">
<value>
classpath:hibernate.cfg.xml
</value>
</property>
<property name = "dataSource" ref = "dataSource"></property>
</bean>
<bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource">
<property name = "driverClassName" value = "com.mysql.jdbc.Driver" />
<property name = "url" value = "jdbc:mysql://localhost:3306/test" />
<property name = "username" value = "root" />
<property name = "password" value = "root" />
<property name = "maxActive" value = "10" />
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
DataSource我还可以使用其他什么?你不需要他们两个.您可以删除hibernate.cfg.xml并配置所有内容LocalSessionFactoryBean,或者hibernate.cfg.xml按原样重用现有内容(在这种情况下,您不需要DataSource在Spring配置中进行配置).
您有以下选择:
您当前的配置已足够,但它缺乏对Spring事务管理的支持.为了实现它,你需要
宣布 HibernateTransactionManager
添加<tx:annotation-driven>以启用声明式事务管理(@Transactional)
声明TransactionTemplate是否要使用程序化事务管理(使用它来克服声明式事务管理的限制)
另外,不要忘记从Hibernate配置中删除与事务相关的属性,因为它们可能与Spring事务管理冲突
| 归档时间: |
|
| 查看次数: |
16567 次 |
| 最近记录: |