GlobalTransactional

seata-spring的maven坐标:

<dependency>
  <groupId>io.seata</groupId>
  <artifactId>seata-spring</artifactId>
  <version>1.6.1</version>
</dependency>

@GlobalTransactional注解的位置:

io.seata.spring.annotation.GlobalTransactional

查看GlobalTransactional源码,注释显示:

/**
 * The interface Global transactional.
 *
 * @author slievrly
 * @see io.seata.spring.annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object) io.seata.spring
 * .annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object)// the scanner for TM, GlobalLock, and
 * TCC mode
 * @see io.seata.spring.annotation.GlobalTransactionalInterceptor#handleGlobalTransaction(MethodInvocation,
 * AspectTransactional) io.seata.spring.annotation.GlobalTransactionalInterceptor#handleGlobalTransaction
 * (MethodInvocation,
 * GlobalTransactional)// TM: the interceptor of TM
 * @see io.seata.spring.annotation.datasource.SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation) io.seata.spring
 * .annotation.datasource.SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation)// RM: the interceptor of
 * GlobalLockLogic and AT/XA mode
 * @see io.seata.spring.tcc.TccActionInterceptor#invoke(MethodInvocation) io.seata.spring.tcc
 * .TccActionInterceptor#invoke(MethodInvocation)// RM: the interceptor of TCC mode
 */

阅读注释,

io.seata.spring.annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object)

wrapIfNecessary(Object, String, Object)方法,是 TM、GlobalLock和 TCC 模式的扫描仪。

io.seata.spring.annotation.GlobalTransactionalInterceptor#handleGlobalTransaction(MethodInvocation,AspectTransactional)

handleGlobalTransaction(MethodInvocation,GlobalTransactional)这个方法,是TM侧的TM的拦截器。

io.seata.spring.annotation.datasource.SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation)

SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation),是RM侧的GlobalLockLogic和AT/XA模式的拦截器。

io.seata.spring.tcc.TccActionInterceptor#invoke(MethodInvocation)

TccActionInterceptor#invoke(MethodInvocation),是RM侧的TCC模式的拦截器。

TM是什么?RM是什么?看看seata术语表。

TM是事务管理器,定义全局事务的范围:开始全局事务、提交或回滚全局事务。

RM是资源管理器,管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

简称 中文名称 功能
TC (Transaction Coordinator) 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚。
TM (Transaction Manager) 事务管理器 定义全局事务的范围:开始全局事务、提交或回滚全局事务。
RM (Resource Manager) 资源管理器 管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

GlobalTransactionScanner#wrapIfNecessary,查看扫描仪的方法。

wrapIfNecessary(Object, String, Object)方法位置:

io.seata.spring.annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object)

查看源码,注释显示:

// todo

你可能感兴趣的:(java,事务)