Spring事务源码梳理
Posted 在谷歌上百度
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring事务源码梳理相关的知识,希望对你有一定的参考价值。
- 通过注解@EnableTransactionManagement中的@Import(TransactionManagementConfigurationSelector.class)给容器中导入了两个组件,分别是:AutoProxyRegistrar和ProxyTransactionManagementConfiguration
- AutoProxyRegistrar:它是一个后置处理器,给容器中注册一个InfrastructureAdvisorAutoProxyCreator,InfrastructureAdvisorAutoProxyCreator利用后置处理器机制在对象创建以后,对对象进行包装,返回一个代理对象(增强器),代理对象执行方法,利用拦截器链进行调用。
- ProxyTransactionManagementConfiguration:给容器中注册事务增强器
-
- 事务增强器要用事务注解信息:AnnotationTransactionAttributeSource来解析事务注解
- 事务拦截器中:transactionInterceptor(),它是一个TransactionInterceptor(保存了事务属性信息和事务管理器),而TransactionInterceptor是一个MethodInterceptor,在目标方法执行的时候,执行拦截器链,事务拦截器(首先获取事务相关的属性,再获取PlatformTransactionManager,如果没有指定任何transactionManager,最终会从容器中按照类型获取一个PlatformTransactionManager,最后执行目标方法,如果异常,便获取到事务管理器进行回滚,如果正常,同样拿到事务管理器提交事务。)
以上是关于Spring事务源码梳理的主要内容,如果未能解决你的问题,请参考以下文章