当前位置 博文首页 > L-Java:Spring 事务源码(7)—事务的completeTransactionAfterTh

    L-Java:Spring 事务源码(7)—事务的completeTransactionAfterTh

    作者:[db:作者] 时间:2021-07-25 15:55

    ??基于最新Spring 5.x,详细介绍了Spring事务源码,包括completeTransactionAfterThrowing尝试回滚事务、commitTransactionAfterReturning尝试提交事务,cleanupTransactionInfo清理事务信息等等方法。

    ??此前的文章中,我们介绍了Spring AOP中最重要的类之一——TransactionInterceptor事务拦截器的invoke方法内部的createTransactionIfNecessary方法的源码:Spring 事务源码(6)—createTransactionIfNecessary处理事务属性并尝试创建事务【两万字】。下面我们接着学习后面的方法和逻辑,后面的代码包括事务的completeTransactionAfterThrowing提交、commitTransactionAfterReturning回滚、resume恢复等逻辑。

    Spring 事务源码 系列文章

    Spring 5.x 源码汇总

    Spring 事务源码(1)—<tx:advice/>事务标签源码解析

    Spring 事务源码(2)—<tx:annotation-driven/>事务标签源码解析

    Spring 事务源码(3)—@EnableTransactionManagement事务注解源码解析

    Spring 事务源码(4)—BeanFactoryTransactionAttributeSourceAdvisor注解事务通知器源码解析

    Spring 事务源码(5)—TransactionInterceptor事务拦截器与事务的AOP增强实现

    Spring 事务源码(6)—createTransactionIfNecessary处理事务属性并尝试创建事务【两万字】

    Spring 事务源码(7)—事务的completeTransactionAfterThrowing回滚、commitTransactionAfterReturning提交以及事务源码总结【一万字】

    文章目录

    • Spring 事务源码 系列文章
    • 1 proceedWithInvocation继续执行
    • 2 completeTransactionAfterThrowing处理事务异常
      • 2.1 rollbackOn是否需要回滚
      • 2.2 rollback执行回滚
        • 2.2.1 triggerBeforeCompletion触发beforeCompletion回调
        • 2.2.2 rollbackToHeldSavepoint回滚保存点
        • 2.2.3 doRollback回滚事务
        • 2.2.4 doSetRollbackOnly设置仅回滚
        • 2.2.5 triggerAfterCompletion触发afterCompletion回调
        • 2.2.6 cleanupAfterCompletion完成后清理
          • 2.2.6.1 doCleanupAfterCompletion自定义清理
          • 2.2.6.2 resume恢复事务
    • 3 cleanupTransactionInfo清理事务信息
    • 4 commitTransactionAfterReturning提交事务
      • 4.1 processCommit处理提交
        • 2.1.1 releaseHeldSavepoint释放保存点
        • 2.1.2 doCommit提交事务
    • 5 总结
    • 6 Spring编程式事务源码
    cs