Spring 事务 源码分析笔记04 事务回滚

调用completeTransactionAfterThrowing 进行事务回滚

1.判断当前是否存在事务

2.判断是否满足回滚条件

Spring 事务 源码分析笔记04 事务回滚

3.回滚处理

4.如果不满足回滚条件出现异常也会继续提交

5.回滚时,事务状态不能是已完成Spring 事务 源码分析笔记04 事务回滚

6. 调用processRollback执行回滚

7.如果有保存点,也就是当前事务为单独的线程则会退到保存点

8.如果是新事务直接回滚

9.如果当前事务不是独立的事务,则只能等待事务链执行完成之后再做回滚操作