博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring事务增强,事务回滚如何判断?希望在前端上有个提示
阅读量:7098 次
发布时间:2019-06-28

本文共 1358 字,大约阅读时间需要 4 分钟。

1 主要处理思路

1.1 思路1

事物回滚,一般抛异常,可以自己手写一个异常,根据异常判断。事物还是按照 spring 的之前的逻辑。只是,手工抛特定的异常。这样你就可以捕获这个异常给前台用户。

1.2 思路2

方法捕获异常抛出即可,记得方法定义必须抛出异常,否则框架捕获不到,声明式事物不起作用。

1.3 总结

我认为上述思路在实现上是统一的。下面给出一个用伪代码描述的例子。

MyException:public class MyException extends RuntimeException {     public MyException(){    }}Action中:@Autowiredpublic class XAction {    @Autowired    private XServicexService xService;        public String AddXmethod(){        try {            xService.addX (x); //将x存入数据库        } catch (MyException e) {            System.out.println("service层出异常了....");            //其它处理,例:加上需要在前端显示的提示信息。        }        }}xService中:@Service@Transactional(propagation=org.springframework.transaction.annotation.Propagation.REQUIRED)public class XService{    @Autowired    private XDao xDao;        public void addX (X x) throws MyException {            xDao.addX(x);                //人为的创建出一个异常,测试回滚在action中可以被判断。        try {            int a =10/0;         } catch (Exceptione) {                   //手工抛出,作用有两个,            //1、使用spring事务增强,对事务回滚。            //2、action中可以捕获该异常,并处理,例:在前端显示提示信息。            throw new MyException();        }    }}

例子结果说明:

1、事务增强可以通过SpringAOP进行事务增强。
2、事务发生回滚时,Action可以“判断”事务发生了回滚,并处理。

2 参考文献

(Spring事务管理只对出现运行期异常进行回滚改变默认方式)

(spring 事务回滚)
(spring AOP的异常拦截)
(关于Spring事务回滚的问题)
(spring的事务insert操作怎么判断是否执行成功了还是回滚了)
济南java技术交流群群主隐士的思路与百度用户mahl8007的思路。

转载地址:http://hfeql.baihongyu.com/

你可能感兴趣的文章
蓦然回首
查看>>
[转] Meida视频加密二-Blob对象
查看>>
JavaScript 变量、函数与原型链
查看>>
saltstack Key管理工具-salt-key
查看>>
WWDC19 -224-iOS 13 Presentations 适配
查看>>
Mybatis异常There is no getter for property named 'XXX' in 'class java.lang.String'
查看>>
jQuery初始化
查看>>
[转载]Linux内存高,触发oom-killer问题解决
查看>>
帮助小白快速理解多线程
查看>>
Android系统移植与驱动开发概述
查看>>
Codeforces 432D Prefixes and Suffixes kmp
查看>>
【poj解题】1028
查看>>
免费论文查重
查看>>
[转]gcc -ffunction-sections -fdata-sections -Wl,–gc-sections 参数详解
查看>>
loadrunner web_custom_request 脚本处理
查看>>
【中文】Joomla1.7扩展介绍之Sitelinkx (自动链接)
查看>>
上下文菜单点击获取ContextMenu实例方法
查看>>
使用jmeter进行简单的压测
查看>>
创建逻辑卷
查看>>
C# bool? 的意思
查看>>