spring AOP 默认对RuntimeException()异常或是其子类进行事务回滚,也就是说

事务回滚:throw new RuntimeException("xxxxxxxxxxxx");

事物不回滚:throw new Exception("xxxxxxxxxxxx");

那么,如何在抛出Exception或者自定义异常时,事务也进行回滚呢?有以下几种方案:

1、在捕获到异常或者显示的抛出 RuntimeException

2、手动回滚----在捕获到异常或者显示的抛出自定义异常前,加一段代码:

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

3、在AOP的配置文件中,添加如下信息:

这样,在抛出自定义异常时,就会进行事务的回滚了

小结:

方法1:在做测试时比较方便,放在业务中无法区分具体的错误信息

方法2:在个别业务处理或者调试代码时使用,放在代码中不方便维护,每个异常都需要增加。

方法3:适合业务开发,也符合AOP的理念。将事务控制和业务分离

普通的jdbc事务在插入数据后 下面的代码报错时 数据不会回滚 但是 spring的事务会回滚

普通的jdbc事务在插入数据后 下面的代码报错时 数据不会回滚 但是 spring的事务会回滚

Spring管理事务默认回滚的异常

一.默认方式 Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类),Error进行回滚. 如果一个方法抛出Exception或者Checked异 ...

spring + mybatis 注解式事务不回滚的原因分析 @Transactional

在一个项目中发现spring的事务无法回滚. DEBUG: org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.ses ...

Spring事务异常回滚,捕获异常不抛出就不会回滚(转载) 解决了我一年前的问题

最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了.......    为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常 ...

Spring事务异常回滚,捕获异常不抛出就不会回滚

最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了.......    为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常 ...

【转】Spring事务异常回滚,捕获异常不抛出就不会回滚

最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了.......     为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异 ...

Spring AOP声明式事务异常回滚(转)

转:http://hi.baidu.com/iduany/item/20f8f8ed24e1dec5bbf37df7 Spring AOP声明式事务异常回滚 近日测试用例,发现这样一个现象:在业务代码 ...

Spring AOP声明式事务异常回滚

近日测试用例,发现这样一个现象:在业务代码中,有如下两种情况,比如:throw new RuntimeException("xxxxxxxxxxxx"); 事物回滚throw ne ...

Spring声明式事务不回滚问题

疑问,确实像往常一样在service上添加了注解 @Transactional,为什么查询数据库时还是发现有数据不一致的情况,想想肯定是事务没起作用,出现异常的时候数据没有回滚.于是就对相关代码进行了 ...

随机推荐

XJOI‘s story (不定期连载)

王城双基的力量.... 我也不知道写写这种东西会不会被查大表..尴尬  . 我为什么要写这东西: 为了蛤鸡 为了红太阳 xj 人物列传 2017   1,6   Friday 得到大新闻 机房后面的监 ...

wifi详解(五)

1        Android平台的Wifi模块移植要点 1.1      Wifi结构 user interface Android WiFiService WPA_Supplicant DHD ...

Best Time to Buy and Sell Stock IV 解答

Question Say you have an array for which the ith element is the price of a given stock on day i. Des ...

tomcat异常

java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor ...

springboot多模块项目下,子模块调用报错:程序包xxxxx不存在

今天在用springboot搭建多模块项目,结构中有一个父工程Parent  一个通用核心工程core 以及一个项目工程A 当我在工程A中引入core时,没有问题,maven install正常 当我 ...

python 标准库 glob ,python glob 学习

glob库是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用 windows 下的文件搜索差不多.查找文件只用到三个匹配符: ”*”, 匹配 个或多个字符: “?”, ”?” ...

20模板方法模式TemplateMethod

一.什么是模板方法模式 Template Method模式也叫模板方法模式,是 行为模式之一,它把具有特定步骤算法中的某些 必要的处理委让给抽象方法,通过子类继承对抽 象方法的不同实现改变整个算法的行 ...

ADNI数据

之前整理的数据相关内容 数据的模态有 Clinical Data(临床数据) Genetic(基因数据) MRI PET BIOSPECIMEN(生物样本) 各模态数据的内容.特点 Clinical ...

c++ 继承(二)

不能自动继承的成员函数 1.构造函数 2.析构函数 3.=运算符 继承与构造函数 1.基类的构造函数不被继承,派生类中需要声明自己的构造函数 2.声明构造函数时,只需要对本类中新增成员进行初始化,对继 ...

棋盘游戏 HDU - 1281 (删点 二分匹配)

小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决 ...

java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案相关推荐

  1. java.lang.classcastexception怎么解决_抛出奇怪的java.lang.ClassCastException

    我正在试验JPA和Glassfish 4.0. 我写了这样的用户类(只是相关的部分,我不确定它是否编译): public class User implements Serializable { pr ...

  2. 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )

    文章目录 I 异常处理 II 字符串异常 III 异常对象 IV 抛出任意类型对象 V 自定义异常 VI 异常相关代码 I 异常处理 1. 异常处理 : 使用 " try{}catch(){ ...

  3. Python程序异常处理:try、except、else、finally,捕获指定异常类型、捕获多个异常类型、捕获所有异常类型、捕获异常信息、异常的传递、raise抛出自定义异常

    输入与预期不匹配,触发异常,程序退出: 一.异常处理:使用try.except进行错误处理 为了保证程序运行的稳定性,错误应该被程序捕捉并合理控制 Python使用保留字try和except进行异常处 ...

  4. 【C++ 语言】异常 ( 抛出字符串异常 | 抛出异常对象 | 抛出任意对象 | 抛出自定义异常 )

    转载自:https://blog.csdn.net/shulianghan/article/details/100002073 文章目录 I 异常处理 II 字符串异常 III 异常对象 IV 抛出任 ...

  5. java抛出自定义异常_10 个深恶痛绝的 Java 异常。。

    异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题. 什么是异常及异常的分类请看这篇文章:一张图搞清楚 Java ...

  6. java exception e抛异常_抛出的异常在上层catch到,但是e.getMessage()为NULL,为什么会这样?...

    1.在一个代码里catch到Exception,throw new Exception(e.getMessage()); 在上级代码里catch到抛出的Exception,想得到错误的信息,结果发现e ...

  7. java java 检查型异常_如何整合Java中的有效性检查和异常抛出?

    我正在实现一个接口,该接口定义了一种方法,如果参数无效,该方法可以引发异常.有效参数的构成取决于实现类.该接口还定义了一个isValid()方法,该方法可用于检查参数,但返回布尔值而不是引发异常.我发 ...

  8. springboot 事务手动回滚_来,讲讲Spring事务有哪些坑?

    来自公众号:孤独烟 引言 今天,我们接上文<面试官:谈谈你对mysql事务的认识>的内容,来讲spring中和事务有关的考题! 因为事务这块,面试的出现几率很高.而大家工作中CRUD的比较 ...

  9. 多个mapper的事务回滚_揭秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式

    作者| 屹远(陈龙),蚂蚁金服分布式事务核心研发 . 导语 本文根据 8月11日 SOFA Meetup#3 广州站 <分布式事务 Seata 及其三种模式详解>主题分享整理,着重分享分布 ...

最新文章

  1. 爬虫之常见的反爬手段和解决思路
  2. Java基础班学习笔记(8)
  3. libevent中的时间及相关的管理
  4. idea提示 cannot resolve symbol “println
  5. DOM4J介绍与代码示例 (强大的xml处理工具)
  6. 外部函数获取内部函数变量_一维随机变量的分布函数
  7. 如何向小白讲述软件架构发展历程?
  8. apache配置多https域名对应单个证书和多个不同的https域名对应多个不同的证书
  9. 最新的物联网10大深度技术,主要包括哪些技术?
  10. EXCEL-日常技巧整理-2-单元格拆分后原数据填充
  11. Springboot + Mybatis整合的小demo,火车订票系统
  12. 聚宽JQData说明书
  13. 增益 Gain 分贝 dB
  14. 解决微信浏览器缓存问题
  15. python伪随机数模块random详解
  16. PCTA考试经验分享
  17. 用map代替双重for循环,stream流代替双重for循环
  18. 关于在KEIL下使用j-link读不到芯片的问题
  19. 【入门PLC】01、博途TIA Portal 软件的使用学习以及安装过程中出错的问题解决(超有用)
  20. 学习笔记(八):FIREWALL配置与使用

热门文章

  1. 【IOC 控制反转】Android 视图依赖注入 ( 视图依赖注入步骤 | 视图依赖注入代码示例 )
  2. 【译】最大限度地降低多线程 C# 代码的复杂性
  3. 2016年第七届蓝桥杯javaB组 试题 答案 解析
  4. 数据结构与算法JavaScript描述——链表
  5. 网页中如何启用QQ交谈
  6. ADO.NET学习笔记-非链接类
  7. 满有趣的屏幕快捷键;)
  8. linux 命令行选项
  9. 机器之心助推长三角建设数据智能产业新高地:2018长三角数据智能盛典
  10. Git『Everything up-to-date』问题解决