美文网首页
Spring声明式事务底层源码分析

Spring声明式事务底层源码分析

作者: 灿若列星 | 来源:发表于2019-12-18 08:37 被阅读0次
spring声明式事务源码
  • 1)、@EnableTransactionManagement

    利用TransactionManagementConfigurationSelector给容器中会导入组件
    导入两个组件
    AutoProxyRegistrar组件
    ProxyTransactionManagementConfiguration组件
    
  • 2)、AutoProxyRegistrar:

    给容器中注册一个 InfrastructureAdvisorAutoProxyCreator 组件;基本的动态代理创建器
    InfrastructureAdvisorAutoProxyCreator:
    利用后置处理器机制在对象创建以后,包装对象,返回一个代理对象(增强器),代理对象执行方法利用拦截器链进行调用;
    
  • 3)、ProxyTransactionManagementConfiguration 做了什么?

    • 1)、给容器中注册事务增强器;
      • 1)、事务增强器要用事务注解的信息,AnnotationTransactionAttributeSource解析事务注解
      • 2)、事务拦截器:
        • TransactionInterceptor;保存了事务属性信息,事务管理器;
        • 他是一个 MethodInterceptor;
        • 在目标方法执行的时候;
        • 执行拦截器链;
        • 事务拦截器:
          • 1)、先获取事务相关的属性
          • 2)、再获取PlatformTransactionManager,如果事先没有添加指定任何transactionmanger
            最终会从容器中按照类型获取一个PlatformTransactionManager;
          • 3)、执行目标方法
            如果异常,获取到事务管理器,利用事务管理回滚操作;
            如果正常,利用事务管理器,提交事务

处理事务核心动态代理创建器:
org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator

相关文章

网友评论

      本文标题:Spring声明式事务底层源码分析

      本文链接:https://www.haomeiwen.com/subject/ivsynctx.html