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

相关推荐
Aevget34 分钟前
「Java EE开发指南」用MyEclipse开发的EJB开发工具(二)
java·ide·java-ee·eclipse·myeclipse
黄昏晓x41 分钟前
C++----多态
java·jvm·c++
Brookty1 小时前
【算法】前缀和
java·学习·算法·前缀和·动态规划
少许极端2 小时前
算法奇妙屋(七)-字符串操作
java·开发语言·数据结构·算法·字符串操作
懒羊羊不懒@2 小时前
Java基础语法—字面量、变量详解、存储数据原理
java·开发语言
望获linux2 小时前
【实时Linux实战系列】实时 Linux 的自动化基准测试框架
java·大数据·linux·运维·网络·elasticsearch·搜索引擎
Code blocks2 小时前
GB28181视频服务wvp部署(一)
java·spring boot·后端
我命由我123452 小时前
Spring Boot - Spring Boot 静态资源延迟响应(使用拦截器、使用过滤器、使用 ResourceResolver)
java·spring boot·后端·spring·java-ee·intellij-idea·intellij idea
Xzh04232 小时前
前后端学习的交界
java·ajax·maven·axios·测试
豆沙沙包?2 小时前
2025年--Lc201- 378. 有序矩阵中第 K 小的元素(排序)--Java版
java·线性代数·矩阵