Spring事务传播特性
作为Java开发者,面试中常被问及Spring事务的传播行为。今天咱们就以面试题解答的形式,用大白话聊聊Spring事务传播特性,帮你彻底搞懂这个面试高频考点!

2025年最新Java面试宝典已整理完成,包含Spring全家桶、分布式、高并发等核心考点:
点击获取网盘资料👉 (提取码: 9b3g)
面试官最爱问:Spring有几种事务传播行为?
直接上答案:7种!分别通过Propagation枚举定义。下面我们用实际工作场景来理解:
1️⃣ PROPAGATION_REQUIRED(默认值)
场景:同事找你帮忙处理订单(方法B),此时:
- 如果你手头没事(无事务),就和他一起开新会(新事务)
- 如果你正在开会(已有事务),就直接加入他的讨论(加入事务) 核心:保证所有操作在同一个事务里,要么全成功,要么全失败!
2️⃣ PROPAGATION_SUPPORTS
场景:领导让你整理文档(方法C)
- 如果团队在开会(有事务),你就边听边整理(加入事务)
- 如果大家各忙各的(无事务),你也单独处理(无事务) 适合:非核心操作,比如记录日志
3️⃣ PROPAGATION_MANDATORY
场景:财务报销(方法D)
- 必须有人审核(必须存在事务),否则直接报错 注意:像财务这种严肃操作,没领导签字(事务)绝对不行!
4️⃣ PROPAGATION_REQUIRES_NEW
场景:你正在开会(事务A),突然要发紧急通知(方法E)
- 立刻暂停当前会议(挂起事务A)
- 单独发通知(开新事务B)
- 发完继续开会(恢复事务A) 关键:两个事务完全独立,通知发失败不影响会议内容!

5️⃣ PROPAGATION_NOT_SUPPORTED
场景:在部门会议中(事务A)需要查字典(方法F)
- 暂停会议(挂起事务)
- 单独查字典(无事务)
- 查完继续开会 典型用途:执行非事务的存储过程
6️⃣ PROPAGATION_NEVER
场景:在安静图书馆(无事务)时突然有人要讨论(方法G)
- 直接拒绝:"这里不能说话!" 原则:只要检测到事务存在,立刻抛异常!
7️⃣ PROPAGATION_NESTED
场景:在项目会议(事务A)中讨论技术方案(方法H)
- 在会议本上单独记一页笔记(创建保存点)
- 方案讨论失败,只需撕掉这页笔记(回滚到保存点)
- 不影响会议主线任务 特点:MySQL不支持!需用JDBC驱动实现
实战避坑指南
1️⃣ 默认值陷阱:开发时没指定传播行为?Spring悄悄给你用了PROPAGATION_REQUIRED! 2️⃣ ** REQUIRES_NEW成本高**:频繁新建事务会导致数据库连接耗尽 3️⃣ NESTED局限性:Oracle/PostgreSQL支持,但MySQL不原生支持
✨特别提示:备考期间需要开通「面试鸭会员」的同学,通过 面试鸭返利网 联系我可返利25元,下单后联系客服即可领取!
面试答题技巧
当被问到"如何选择传播行为"时,记住三个关键点:
- 业务是否强制需要事务(选MANDATORY)
- 操作是否需要独立提交(选REQUIRES_NEW)
- 是否允许部分失败(选NESTED)
搞懂Spring事务传播特性,面试官就知道你真正处理过事务问题!建议结合具体项目经验说明,比如:"我们订单系统调用风控服务时,就是用REQUIRES_NEW保证风控异常不影响主订单..."

掌握这些Spring事务传播特性的本质,不仅面试加分,更能避免线上事务踩坑。备战面试时多结合场景理解,比死记硬背效果强十倍!


