spring中@Transaction注解解析

17
四月
2021

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

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

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

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

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

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

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

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

2、是否创建代理

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

 

 

TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员