使用spring管理hibernate的事务
2016-08-21 20:38
429 查看
beans.xml中:
倘如出现HibernateException时,spring会自动进行回滚操作而无须自己去实现。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd "> <context:annotation-config /> <context:component-scan base-package="com.luo" /> <bean id="logInterceptor" class="com.luo.log.LogInterceptor" /> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/springDemo" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="annotatedClasses"> <list> <value>com.luo.bean.User</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop> <prop key="show_sql">true</prop> <prop key="format_sql">true</prop> </props> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="txManager" /> <aop:config> <aop:pointcut expression="execution(public void com.luo.dao.daoImpl.UserDaoImpl.save(com.luo.bean.User))" id="pc"/> <aop:aspect id="asp" ref="logInterceptor"> <aop:before pointcut-ref="pc" method="log" /> </aop:aspect> </aop:config> <!-- <aop:aspectj-autoproxy></aop:aspectj-autoproxy> --> </beans>在UserService中调用UserDao的与数据库打交道的save方法:
@Transactional public void save(User user) { userDao.save(user); } 注意:这里的UserService倘若要使用@Component(value="us")标注的形式的话: 如果没有实现接口的类也想要实现代理,会使用直接操作二进制码的方式,来产生代理。必须引入cglib的jar包!此时有了spring进行事务的管理后,就无需进行session.beginTransaction()以及session.getTransaction().commit().
倘如出现HibernateException时,spring会自动进行回滚操作而无须自己去实现。
相关文章推荐
- Spring整合hibernate:3、使用XML进行声明式的事务管理
- Spring整合hibernate:3、使用XML进行声明式的事务管理
- hibernate,spring管理事务中(transaction,JDBC connection,Hibernate Session的使用)
- 关于spring 与Hibernate 结合使用的事务管理
- Spring整合hibernate:3、使用XML进行声明式的事务管理
- Spring整合hibernate的事务属性介绍以及声明式事务管理 (使用Annotation和xml)
- Spring整合hibernate的事务属性介绍以及声明式事务管理 (使用Annotation和xml)
- Spring 使用Hibernate事务管理:update等操作无效果问题
- Spring整合hibernate的事务属性介绍以及声明式事务管理 (使用Annotation和xml)
- Spring整合Hibernate:2、使用Annotation方式进行声明式的事务管理
- hibernate使用spring的事务管理器在测试dao的时候获取不到session
- Spring整合Hibernate:2、使用Annotation方式进行声明式的事务管理
- Spring2.5整合Hibernate3.0中使用XML以tx来配置事务管理。
- Spring和Hibernate使用注解方式进行事务管理
- Spring整合Hibernate开发 - 使用事务管理器操作数据库 - 主配置文件
- Spring整合Hibernate:2、使用Annotation方式进行声明式的事务管理
- Java学习之道:纯Hibernate使用-不用spring事务管理
- Spring学习笔记(15)----使用Spring注解方式管理事务
- Spring和Hibernate的结合--声明式事务管理(转)
- 使用Spring注解方式管理事务与传播行为详解