美文网首页
Spring Transaction相关理解

Spring Transaction相关理解

作者: 一生逍遥一生 | 来源:发表于2020-05-02 11:09 被阅读0次

本文关联的代码版本为spring-jdbc 5.2.6.RELEASE

@EnableTransactionManagement

@EnableTransactionManagement利用@Import(TransactionManagementConfigurationSelector.class)给容器中导入
AutoProxyRegistrar 和ProxyTransactionManagementConfiguration两个组件。

AutoProxyRegistrar

给容器注册一个InfrastructureAdvisorAutoProxyCreator组件(利用后置处理器在创建对象以后,包装对象,返回一个代理对象(增强器),
代理对象执行方法利用拦截器链进行调用),

ProxyTransactionManagementConfiguration

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

相关文章

网友评论

      本文标题:Spring Transaction相关理解

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