GlobalTransactional

seata-spring的maven坐标:

java 复制代码
<dependency>
  <groupId>io.seata</groupId>
  <artifactId>seata-spring</artifactId>
  <version>1.6.1</version>
</dependency>

@GlobalTransactional注解的位置:

java 复制代码
io.seata.spring.annotation.GlobalTransactional

查看GlobalTransactional源码,注释显示:

java 复制代码
/**
 * 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
 */

阅读注释,

java 复制代码
io.seata.spring.annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object)

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

java 复制代码
io.seata.spring.annotation.GlobalTransactionalInterceptor#handleGlobalTransaction(MethodInvocation,AspectTransactional)

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

java 复制代码
io.seata.spring.annotation.datasource.SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation)

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

java 复制代码
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

相关推荐
拉法豆粉10 分钟前
在压力测试中如何确定合适的并发用户数?
java·开发语言
爱上纯净的蓝天1 小时前
迁移面试题
java·网络·c++·pdf·c#
chenglin0161 小时前
Logstash_Input插件
java·开发语言
bemyrunningdog2 小时前
Spring文件上传核心技术解析
java
Fireworkitte2 小时前
Java 系统中实现高性能
java
ningqw2 小时前
JWT 的使用
java·后端·springboot
David爱编程3 小时前
指令重排与内存屏障:并发语义的隐形守护者
java·后端
ZZHow10244 小时前
Java项目-苍穹外卖_Day1
java·spring boot·web
带刺的坐椅4 小时前
老码农教你 Solon Web Context-Path 的两种配置方式
java·nginx·tomcat·web·solon
ZZHow10245 小时前
Java项目-苍穹外卖_Day2
java·spring boot·web