其他分享
首页 > 其他分享> > 阿里开发规范强制规定@Transaction必须指定rollbackFor

阿里开发规范强制规定@Transaction必须指定rollbackFor

作者:互联网

阿里开发规范强制规定@Transaction必须指定rollbackFor

参考网址:

https://mp.weixin.qq.com/s/k0xyfM8EG8cwUDKKbbC78g

网上面试题

public class ServiceA{

 @Transaction
 public void m1(){
  //1.向db中插入数据

  //2.故意抛出异常,注意这里是Exception异常
  throw new Exception("故意失败!")
 }

}

注意点

1.该方法上有@Transaction,说明该方法支持事务

2.方法内部抛出的是Exception异常,而不是RunTimeException异常

问题:

1、m1 方法中的事务会被回滚?

2、被@Transaction 标注的方法,不设置任何属性的情况下,事务什么情况下会回滚?

3、通过@Transaction 如何控制事务在什么异常的情况下回滚?

Spring 回滚事务的机制

rollbackFor 使用建议

强烈建议,或者强烈要求,使用@Transaction 注解时,务必设置 rollbackFor 属性的值,建议设置为 Exception 类型,也就是在所有异常的情况下都会回滚事务。

事务未达到预期效果,如何排查?

有时候,我们在使用事务的时候,如果事务实际的效果和期望的结果不一致,比如发现事务未生效,咱们可以在org.springframework.transaction.interceptor.TransactionInterceptor#invoke方法中设置断点,spring 中就是通过这个拦截器来实现事务功能的,被 spring 管理事务的代码都会进到这个方法中,可以通过 debug 的方式快速定位到问题,而解决问题。

标签:回滚,Transaction,事务,异常,rollbackFor,阿里,Exception
来源: https://blog.csdn.net/shaoming314/article/details/118946608