Spring事务的一些细节问题
来源:互联网 发布:建筑工程招投标软件 编辑:程序博客网 时间:2024/05/24 05:40
Spring的事务是否回滚取决于方法终端是否能被Spring捕捉到
举个例子:
functionA,functionA,functionA均有事务,传播级别PROPAGATION_REQUIRED
public void functionA(){functionB();functionC();}public void functionB(){}public void functionC(){throw new RuntimeException("出错了");}
//场景一:抛错在方法内被捕捉public void functionA(){functionB();functionC();}public void functionB(){}public void functionC(){try{throw new RuntimeException("出错了");}catch(Exception e){e.printStackTrace();}}//这种情况下,functionA不会回滚//场景二:抛错在方法外被捕捉public void functionA(){functionB();try{functionC();}catch(Exception e){e.printStackTrace();}}public void functionB(){}public void functionC throws RuntimeException(){throw new RuntimeException("出错了");}//这种情况下,functionA回滚
总结:
一个添加了事务的方法报错会不会回滚取决于报错能不能被Spring捕捉到
这样理解:
我们把Bean的管理交给了Spring,每次我们需要一个Bean的时候,Spring用一个黑袋子把方法装起来给我们,方法报错了,自己在黑袋子里面catch注解决了,那么袋子外面的人不知道里面发生了什么,就无法回滚
但是如果没有自己catch住解决,就像是扎破袋子扔了个东西出来,这是Spring知道了你出错了,就会根据实物的规则,将方法回滚
新人自己理解,有错请指出
0 0
- Spring事务的一些细节问题
- spring学习的一些细节问题
- jpa+spring 事务的一些问题
- 【Spring】queryForXXX()方法使用的一些细节问题
- SqlServer2008中事务使用的一些细节
- spring事务和synchronized锁的一些问题
- 【spring】spring session的一些细节
- spring事务的一些概念
- c的一些细节问题
- HMM的一些细节问题
- Servlet的一些细节问题
- session的一些细节问题
- java的一些细节问题!
- 遇到的一些细节问题
- 一些关于spring mvc的细节
- Spring 事务不回滚的问题
- Spring中事务的问题
- 关于Spring事务的问题
- 童年野味——“茅yi”
- 腾讯云ubuntu配置ssl
- 剑指offer-二维数据的查找
- 【SPOJ3267】D-query-莫队算法
- svn 系统调用失败解决
- Spring事务的一些细节问题
- 红宝书 第14章整理——表单
- 私活,是对技术达人最好的点赞
- JAVA中日期 yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别
- 关闭Eclipse的控制台console自动跳出
- MVC和四大组件的理解
- C++与JAVA中的某些语言风格以及需要注意的地方
- 关于类的声明和定义分离的问题
- ThinkPHP的使用(一)