以下情况为单层 Transactional 事务
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="mysqlDataSource" /> </bean> <tx:annotation-driven transaction-manager="txManager" />
@Transactional(rollbackFor = Exception.class) public int method(Object obj) { try { doInsert(obj); return 1; } catch(Exception e) { e.printStackTrace(); // // // 加入下行代码手动回滚 // @Transactional 为方法加上事务,try catch 捕获到异常手动回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // // } return 0; }
以下情况为双层至多层 Transactional 事务
@Transactional(rollbackFor = Exception.class) public int method(Object obj) { try { doInsert(obj); return 1; } catch(Exception e) { e.printStackTrace(); // // // 加入下行代码手动回滚 // @Transactional 为方法加上事务,try catch 捕获到异常手动回滚事务 if (TransactionAspectSupport.currentTransactionStatus().isNewTransaction()) { // 第一次开启事务遇到异常则回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } else { // 嵌套的事务,当前方法被另一个加了 @Transactional 标注的方法调用 // 抛出异常告诉上一个事务,让上一个事务判断是否回滚 // 这样的优点是: 在调用者那边不用根据当前方法返回值来判断是否回滚 throw e; } // // } return 0; }
相关推荐
主要介绍了Spring @Transactional工作原理详解,具有一定借鉴价值,需要的朋友可以参考下。
我們使用Spring Framework裡,在Service 的 Method 給予@Transactional 系統就會去管理transaction,我們是在哪裡做了甚麼設定嗎? 為什麼下的這個Annotation成功會commit失敗會rollback呢? Transaction 管理做了...
spring事务管理注解jar,spring-tx-3.2.4.RELEASE.jar,导入项目即可
关于spring中@Transactional注解传播属性原理的实验 具体方法: 主体形式:a方法调用b方法 a插入数据“one” b插入数据“two” a、b方法都可以有不同的传播级别或者不加事务注解(none): required(rd), required_...
本代码使用H2内存数据库演示spring事务使用,包括编程式事务,声明式事务@Transactional使用,自定义事务事务注解实现自定义事务管理器
Spring中的@Transactional事物回滚实例源码
本篇文章主要介绍了浅谈Spring中@Transactional事务回滚及示例(附源码),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了spring @Transactional 无效的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Spring3事务管理——使用@Transactional 注解.rar
在本篇文章里小编给大家整理了关于Spring声明式事务@Transactional详解内容,需要的朋友们可以参考下。
主要介绍了深入学习Spring Boot排查 @Transactional 引起的 NullPointerException问题,需要的朋友可以参考下
Spring中@Transactional事务回滚(含实例详细讲解,附源码)Java开发Java经验技巧共8页.pdf.zip
Spring注解配置中间层供Struts2使用 1.spring通过注解方式生成中间层 2.不使用Struts2的常量struts.objectFactory也可识别中间层
主要介绍了Spring @Transactional注解失效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
- chapter1:[基本项目构建(可作为工程脚手架),引入...由于Spring Cloud偏宏观架构,Spring Boot偏微观细节,内容上越来越多,为了两部分内容不互相干扰,所以迁移Spring Cloud内容到:[SpringCloud-Learning项目]...
Spring源码学习十二:@Transactional是如何工作的1
使用 tk-mybatis 的 demo 测试了 Spring 的事务 包含 @Transactional 注解所有的功能测试。
声明式事务管理也有两种常用的方式,一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解。显然基于注解的方式更简单易用,
主要介绍了spring的@Transactional注解用法解读,具有一定借鉴价值,需要的朋友可以参考下