默认spring只在发生未被捕获的runtimeexcetpion时才回滚。
最笨的办法:代码级控制:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
为何在aop advitor中配置rollba-for=“java.lang.Exception”异常时不回滚呢?
待续,这个问题必须解决
问题已解决:
原理:spring aop 异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过 换句话说在service的方法中不使用try catch 或者在catch中最后加上throw new runtimeexcetpion(),这样程序异常时才能被aop捕获进而回滚
解决方案: 方案1.例如service层处理事务,那么service中的方法中不做异常捕获,或者在catch语句中最后增加throw new RuntimeException()语句,以便让aop捕获异常再去回滚,并且在service上层(webservice客户端,view层action)要继续捕获这个异常并处理 方案2.在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常(现在项目的做法)
<tx:advice id="txAdvice" transaction-manager="transactionManager"> <aop:config> |
- 浏览: 487712 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (241)
- Jscript笔记 (23)
- sql (8)
- jQuery (23)
- css (2)
- jQuery.form (2)
- struts2 (3)
- 数据库字符集 (3)
- Java (15)
- Oracle (2)
- DB2 (4)
- ResourceBundle (1)
- Exception (7)
- Windows (2)
- 数据库 (18)
- JSP (2)
- jstree (3)
- datatable (9)
- bootstrap-switch (1)
- select2 (3)
- Java.tree (1)
- JSF2 (1)
- Bootstrap (1)
- Eclipse (13)
- SVN (3)
- Eclipse插件 (5)
- myeclipse (1)
- ajax (1)
- JBOSS (2)
- data storage (1)
- Apache tiles (1)
- springMVC (15)
- mybatis (6)
- AngularJS (13)
- checkbox (1)
- J2EE (1)
- SecureCRT (7)
- tomcat (4)
- Maven (3)
- log4j (3)
- Xshell (1)
- 工具应用 (5)
- spring (12)
- Apache (5)
- books (1)
- fastjson (1)
- Standard (1)
- Mysql (1)
- MAC (1)
- Charles (1)
- LINUX (1)
- 日常开发ISSUE (0)
最新评论
-
yuchangcheng:
直接把代码 上传上来吧 这样看的很吃力呀
mybatis generator 的复合查询 -
zzd0058:
我表示报400错误
SpringMVC接收复杂集合参数 -
lihaiming:
影非弦 写道没有这个页面详细的文件么?文档地址:https:/ ...
select2.js使用 -
影非弦:
没有这个页面详细的文件么?
select2.js使用 -
影非弦:
这个select.min.css是select2提供的样式文件 ...
select2.js使用
发表评论
-
一个spring mvc + mybatis项目里的一些问题
2016-04-27 13:57 12721. mybatis sql 映射配置文件里的sql ... -
SpringMVC接收复杂集合参数
2016-04-25 22:48 21229spring MVC在接收集合请求参数时,需要在Cont ... -
Get,Post请求中文乱码问题有效解决方法
2016-04-19 21:32 1962对于做Java WEB项目同学来说,中文乱码问题是一个经常遇 ... -
统一处理视图数据格式
2016-04-18 15:37 1120<mvc:annotation-driven con ... -
Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决
2016-04-15 15:17 987在Spring MVC 的Controller中使用@Re ... -
如何通过spring mvc接收页面表单List
2016-04-13 13:53 2380可以用2种方式解决这个问题: 1.在表单提交之前,把表单序 ... -
springmvc多文件上传
2016-04-13 13:20 489@RequestMapping(value = " ... -
spring中自定义注解(annotation)与AOP中获取注解
2016-01-22 16:46 14112一、自定义注解(annotation) 自定义注解的作用: ... -
Spring中的AOP(五)——在Advice方法中获取目标方法的参数
2016-01-22 16:33 1222摘要 本文介绍使用Spring AOP编程中,在增强处理 ... -
Spring中事务传播行为种类
2016-01-22 15:06 679Spring在TransactionDefinition接口 ... -
配置分离
2016-01-21 15:55 877为了配合运维管理,同时也为了提高代码的可维护性,将一些配置相 ... -
声明式事务管理 - Spring Framework reference 2.0.5 参考手册中文版
2016-01-20 17:50 10049.5. 声明式事务管理 大多数Spring用户 ... -
Spring事务管理只对出现运行期异常进行回滚
2016-01-20 16:49 1065Spring的事务管理默认只对出现运行期异常(java. ... -
在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案
2016-01-19 12:16 3841Spring的@RequestBody非常牛 ... -
Spring mvc 原理浅析
2016-01-12 18:20 4438Spring MVC主要包括以下要点: 1:由Di ... -
Spring事务传播特性的浅析——事务方法嵌套调用的迷茫
2016-01-11 18:31 1067Spring事务传播机制回顾 Spring事务一个被讹 ... -
关于Spring事务回滚的问题
2016-01-11 18:11 770在Spring的配置文件中,如果数据源的defaultAu ... -
通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
2015-12-08 13:14 2529关于在spring 容器初始化 bean 和销毁前所做的操 ... -
spring+springMVC,声明式事务失效,原因以及解决办法
2015-10-29 21:27 1106一.声明式事务配置: [html] view p ... -
springMVC 文件下载
2015-10-29 20:29 1414package com.clj.test.down.uti ...
相关推荐
自己做的一个简单的spring运用实例,主要是关于事务回滚的一个小例子,希望对还在纠结事务回滚的童靴有点帮助。。。
子线程任务发生异常,主线程事务如何回滚
花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...
主要介绍了spring事务异常回滚实例解析,具有一定借鉴价值,需要的朋友可以参考下
使用MySQL时,如果发现事务无法回滚,但Hibernate、Spring、JDBC等配置又没有明显问题,到底是什么原因,下面与大家分享下
Spring/SpringMVC/MyBatis整合,可事务回滚
1. 基于Aspectj实现动态数据源...6. 实现事务内切换数据源(支持原生Spring声明式事务哟,仅此一家),并支持多数据源事务回滚(有了它除了跨服务的事务你需要考虑分布式事务,其他都不需要,极大的减少了系统的复杂程度)
主要介绍了Spring异常捕获且回滚事务解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring事务管理A方法内部调用B方法的回滚问题测试代码
Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚,需要了解更多Spring事务方面的知识,可详看本
SQL 事务回滚解决回滚无效的情况 BEGIN TRY END TRY CAHTH
基于SpringBoot的轻量级redis事务回滚机制,使用栈和ThreadLocal记录业务链的redis操作,发生异常进行回滚,参考了阿里巴巴Seata AT模式的db回滚策略:补偿回滚,记录前镜像与当前操作语句,反向解析生成补偿动作。...
数据库试验,关于事务的操作。关于事务的创建撤销,事务的回滚等基本操作练习。
java 应用程序操作数据库实例,若出现sql异常则事务回滚。
oracle 事务 回滚 存储过程 自用
主要给大家介绍了关于mongoDB 4.0事务回滚的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
执行多条SQL语句对数据库进行操作,如果某个SQL语句执行中出错,那么要对之前的操作进行回滚,代码比较简单。
Spring中的JdbcTemplate,Spring中的的事务.。。。。。。。
下面小编就为大家带来一篇完美解决Spring声明式事务不回滚的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章主要介绍了浅谈Spring中@Transactional事务回滚及示例(附源码),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧