当前位置 博文首页 > L-Java:Spring 事务源码(1)—<tx:advice/>事务标签源码解析

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

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

    ??基于最新Spring 5.x,详细介绍了Spring 事务源码,包括<tx:advice/>标签源码解析。

    ??此前我们学习了Spring事务的基本使用:Spring 5.x 学习(11)—@Transactional Spring 事务的深入学习与使用【两万字】。现在我们来深入学习它的源码,主要是声明式事务的源码。可以说,全网都很难再找到这么深入的Spring事物的源码讲解了。

    ??在通过本系列文章学习Spring事务的源码之前,我们应该对Spring AOP的通用源码、原理有所了解,这个我们在此前就讲过了,因此在事物的源码中对于某些重复的AOP方法的原理不会赘述!和通用Spring AOP源码的讲解一样,我们从基于XML的事务标签开始解析,后续再讲解事务注解的解析。

    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 基于XML的声明式事务解析入口
    • 2. < tx:advice/>标签解析
      • 2.1 getBeanClass获取bean定义的class类型
      • 2.2 doParse解析自有属性
        • 2.1.1 getTransactionManagerName获取事务管理器beanName
        • 2.1.2 parseAttributeSource解析事务属性源
        • 2.1.3 TransactionAttribute事务属性体系
          • 2.1.3.1 TransactionAttribute
          • 2.1.3.2 DefaultTransactionDefinition
          • 2.1.3.3 DefaultTransactionAttribute
          • 2.1.3.4 RuleBasedTransactionAttribute
            • 2.1.3.4.1 getDepth获取匹配栈深度
        • 2.1.4 TransactionAttributeSource事务属性源体系
          • 2.1.4.1 NameMatchTransactionAttributeSource
          • 2.1.4.2 MethodMapTransactionAttributeSource
          • 2.1.4.3 CompositeTransactionAttributeSource
          • 2.1.4.4 MatchAlwaysTransactionAttributeSource
          • 2.1.4.5 AnnotationTransactionAttributeSource
    • 3 小结
    cs