Spring 事务传播机制 速记

Spring 事务传播机制,就是专门用来规定:

当一个事务方法调用另一个事务方法时,事务该如何传递和处理。

先记最核心的 7 个英文意思

1. REQUIRED

单词意思:需要的、要求的

你可以记成:

需要事务。

有事务我就加入,没有事务我就自己建一个。

所以:

REQUIRED = 需要事务,想办法进去。


2. REQUIRES_NEW

拆开看:

  • REQUIRES = 需要
  • NEW = 新的

所以就是:

需要一个新的事务。

不管外面有没有,我都要一个全新的

所以:

REQUIRES_NEW = 必须单开新事务。

记忆点很强:

看到 NEW 就想到"新开一桌"。


3. SUPPORTS

单词意思:支持、支持一下

你可以记成:

支持事务,但不强求。

有事务,我支持一下,跟着进去。

没有事务,我也能干。

所以:

SUPPORTS = 有就支持,没有也行。


4. MANDATORY

单词意思:强制的、必须的

这个很好记:

必须有事务。

没有事务就报错。

所以:

MANDATORY = 强制要求必须在事务里。

你可以联想 mandatory attendance

就是"强制出席"。


5. NOT_SUPPORTED

拆开看:

  • NOT = 不
  • SUPPORTED = 支持

意思就是:

不支持事务。

如果外面有事务,先挂起;

我自己按非事务方式执行。

所以:

NOT_SUPPORTED = 我不参与事务。


6. NEVER

单词意思:绝不、从不

这个更狠:

绝对不能有事务。

如果当前有事务,直接报错。

所以:

NEVER = 看到事务我就报错。


7. NESTED

单词意思:嵌套的

你可以立刻联想到:

大事务里套一个小事务。

所以:

NESTED = 嵌套事务。


用英文本义串起来记

你直接按下面这组背:

  • REQUIRED:需要事务
  • REQUIRES_NEW:需要一个新的事务
  • SUPPORTS:支持事务,但不强求
  • MANDATORY:强制必须有事务
  • NOT_SUPPORTED:不支持事务
  • NEVER:绝对不能有事务
  • NESTED:嵌套事务

再给你分组记忆

A 组:想进事务的

REQUIRED

需要事务,没事务就建一个

REQUIRES_NEW

需要一个新的事务

SUPPORTS

支持事务,有就进,没有也行

这三个最常用。


B 组:态度很强硬的

MANDATORY

必须有事务

NEVER

绝对不能有事务

这两个是一对反义词,很好记:

  • MANDATORY:必须有
  • NEVER:绝不能有

C 组:不想参与事务的

NOT_SUPPORTED

不支持事务,外面有事务也先挂起


D 组:套娃型

NESTED

嵌套事务


最好背的一版口诀

你可以直接背这个:

Required 是"需要事务";
Requires New 是"需要新事务";
Supports 是"支持事务";
Mandatory 是"强制必须有事务";
Not Supported 是"不支持事务";
Never 是"绝不能有事务";
Nested 是"嵌套事务"。


面试时怎么说

Spring 事务传播机制里,英文其实就很好记。
REQUIRED 是需要事务,所以有就加入,没有就新建;
REQUIRES_NEW 是需要一个新的事务,所以不管外面有没有都单独开一个;
SUPPORTS 是支持事务,所以有就加入,没有也能执行;
MANDATORY 是强制的,表示必须在事务里;
NOT_SUPPORTED 是不支持事务,表示要以非事务方式执行;
NEVER 是绝不能有事务,有事务就报错;
NESTED 就是嵌套事务。


超短背诵版

REQUIRED:需要事务

REQUIRES_NEW:需要新事务

SUPPORTS:支持事务

MANDATORY:必须有事务

NOT_SUPPORTED:不支持事务

NEVER:绝不能有事务

NESTED:嵌套事务

相关推荐
葡萄成熟时 !18 小时前
JAVA 常用API学习笔记
java·笔记·学习
Rain的Java大神之路19 小时前
介绍一下分布式事务
java·分布式·后端·spring·spring cloud·架构·springcloud
oradh20 小时前
Oracle闪回技术操作总结
数据库·oracle·oracle闪回技术操作总结·oracle闪回·flashback技术
吴声子夜歌20 小时前
Java面试题——基础(一)
java·开发语言
南城以南溫暖如初14720 小时前
外卖CPS实战指南:从技术选型到运营落地全流程解析
java·spring boot·mysql·架构·vue
ltl20 小时前
RocksDB 并发 Compaction 与 Rate Limiter
数据库
傻啦嘿哟21 小时前
英雄联盟皮肤爬虫:爬取全皮肤价格与特效,做比价工具
java·c++·爬虫
码匠许师傅1 天前
【C++ 面试真题】24. 聊聊 C++ 的时间日期处理
java·c++·面试
闻道且行之1 天前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
mqiqe1 天前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络