spring中@Transaction注解解析

首先是会自动创建事务的Advisor

1、创建事务Advisor是如何开始的?

在Spring boot的TransactionAutoConfiguration中有开启@EnableTransactionManagement。

spring中@Transaction注解解析

@EnableTransactionManagement注解主要是通过TransactionManagementConfigurationSelector来导入其他Bean

  • ProxyTransactionManagementConfiguration来添加BeanFactoryTransactionAttributeSourceAdvisor,AnnotationTransactionAttributeSource,TransactionInterceptor
  • AutoProxyRegistrar来添加InfrastructureAdvisorAutoProxyCreator(用于自动创建Aop)

因为@EnableTransactionManagement注解proxyTargetClass的默认值是false,mode的默认值是AdviceMode.PROXY,AutoProxyRegistrar中会根据这两个参数来创建InfrastructureAdvisorAutoProxyCreator,并且设置对应的属性。

spring中@Transaction注解解析

其中对于处理注解@Configuration可以参考https://blog.csdn.net/xiexingshishu/article/details/115473531

自动创建 Aop的可以参考https://blog.csdn.net/xiexingshishu/article/details/111241143

2、是否创建代理

通过BeanFactoryTransactionAttributeSourceAdvisor中的pointcut来判断类中的方法是否有@Transactional,其处理时序为

spring中@Transaction注解解析

 

 

上一篇:Activity-R 完整启动流程


下一篇:Checkpoint group (transaction code: SAAB)