Spring 事务传播机制(Propagation)
Spring 事务传播机制Propagation核心概念事务传播行为当一个带有事务的方法 A 调用另一个带有事务的方法 B 时方法 B 如何使用当前已存在的事务。 由Transactional(propagation Propagation.XXX)指定一共 7 种。前提区分调用方外层方法被调用方内层方法7 种传播行为完整说明1. REQUIRED默认Propagation.REQUIRED如果当前存在事务加入该事务没有则新建事务。外层有事务 → 内外层共用同一个事务任何一方异常整体回滚外层无事务 → 内层新建独立事务最常用绝大多数业务场景默认使用。2. SUPPORTS Propagation.SUPPORTS有事务就加入没有事务就以非事务方式运行。外层存在事务加入外层事务外层无事务内层无事务执行不开启事务⚠️ 风险外层没事务时内层 SQL 自动提交出错不会回滚。3. MANDATORY Propagation.MANDATORY强制要求必须存在当前事务没有事务直接抛出异常。外层有事务加入事务外层无事务抛出IllegalTransactionStateException适合内层方法不能独立运行必须依托外层事务的场景。4. REQUIRES_NEW Propagation.REQUIRES_NEW新建独立事务暂停外层已有事务。重点内外层是两个完全独立事务外层有事务挂起外层事务开启内层新事务内层事务提交 / 回滚不影响外层事务外层回滚也不会回滚内层已提交事务典型场景记录操作日志哪怕主事务失败日志也要保存入库。5. NOT_SUPPORTED Propagation.NOT_SUPPORTED不支持事务如果存在事务先挂起事务以非事务执行。外层有事务 → 挂起内层无事务运行外层无事务 → 继续无事务运行内层操作不受事务控制操作即时生效。6. NEVER Propagation.NEVER禁止存在事务如果检测到外层有事务直接抛异常。外层无事务正常非事务执行外层存在事务抛出异常7. NESTED Propagation.NESTED嵌套事务基于保存点Savepoint运行。⚠️ 依赖底层数据库支持MySQL InnoDB 支持外层存在事务创建保存点内层是嵌套子事务内层异常只回滚到保存点外层事务可以选择提交或整体回滚外层异常连带内层一起回滚外层无事务新建事务和REQUIRES_NEW关键区别REQUIRES_NEW两个独立事务互不干涉NESTED属于同一个外层事务下的子事务外层回滚会连带子事务高频面试对比表格传播属性外层有事务外层无事务REQUIRED加入当前事务创建新事务SUPPORTS加入当前事务无事务运行MANDATORY加入当前事务抛异常REQUIRES_NEW挂起外层新建独立事务创建新事务NOT_SUPPORTED挂起外层无事务运行无事务运行NEVER抛异常无事务运行NESTED创建保存点嵌套子事务创建新事务经典坑面试高频同一个类内方法自调用事务传播失效Service public class OrderService { Transactional public void a() { // 直接调用本类b()不走AOP代理传播机制不生效 b(); } Transactional(propagation Propagation.REQUIRES_NEW) public void b(){} }原因内部调用绕过 Spring AOP 代理。解决方案通过上下文获取代理对象调用。try-catch捕获内层异常能否阻止回滚 在REQUIRED共用事务下 内层抛出异常 → 事务标记回滚点即使外层 catch最终依然回滚。 想要外层捕获异常不回滚需要REQUIRES_NEW或者NESTED。使用场景建议常规业务新增 / 修改REQUIRED默认操作日志独立落库主流程失败日志保留REQUIRES_NEW子操作允许单独回滚、主事务可继续执行NESTED方法必须在事务内部执行MANDATORY

相关新闻

高速列车轴承故障诊断:多尺度特征与模型融合技术

高速列车轴承故障诊断:多尺度特征与模型融合技术

1. 项目背景与核心价值 高速列车轴承作为轨道交通系统的核心部件,其健康状态直接关系到列车运行安全。传统振动信号分析方法在面对复杂工况时存在三个典型痛点:多尺度特征提取不充分、单一模型泛化能力有限、故障诊断结果缺乏可解释性。这个项目正是针对…

2026/7/25 6:14:18阅读更多 →
GEN-1 AI物理操作技术解析与应用实践

GEN-1 AI物理操作技术解析与应用实践

1. GEN-1技术突破解读上周在实验室第一次看到GEN-1的演示视频时,我的咖啡杯差点从手里滑落——这个AI系统仅用1小时训练数据,就在物理操作任务中达到了99%的成功率。作为从业12年的AI研究员,我深知这意味着什么:通用人工智能在物理…

2026/7/25 6:14:18阅读更多 →
10款免费AI内容优化工具实战指南

10款免费AI内容优化工具实战指南

1. 项目概述:AI内容检测与优化工具指南在内容创作领域,AI生成内容的泛滥已经成为一个不可忽视的现象。根据最新研究数据,2023年全网新增内容中约有38%由AI辅助或完全生成,这个比例预计到2026年将突破60%。作为从业十年的内容创作者…

2026/7/25 6:14:18阅读更多 →
YOLOv5与DeepSeek在智慧交通多目标检测中的应用

YOLOv5与DeepSeek在智慧交通多目标检测中的应用

1. 项目概述:多目标检测在智慧交通中的核心价值这个项目本质上是一套面向智慧交通场景的AI视觉检测系统,核心解决了传统交通监控中人工巡检效率低、响应滞后的问题。我在实际部署中发现,城市交叉口的早晚高峰时段,平均每个摄像头需…

2026/7/25 7:42:31阅读更多 →
学习 NLP 需要具备哪些基础知识?请简要列举。

学习 NLP 需要具备哪些基础知识?请简要列举。

学习 NLP 需要的基础知识 1. 数学基础领域关键内容NLP 中的用途线性代数向量、矩阵运算、特征值分解词嵌入表示、矩阵分解(LSA)概率论与统计条件概率、贝叶斯定理、最大似然估计语言模型、朴素贝叶斯分类微积分偏导数、梯度、链式法则神经网络反向传播信…

2026/7/25 7:42:31阅读更多 →
TensorRT优化图像生成系统:从ComfyUI到生产级部署

TensorRT优化图像生成系统:从ComfyUI到生产级部署

1. 图像生成系统的核心挑战与设计思路 现代图像生成系统正经历着从实验性工具到生产级应用的转变。去年我们团队接手了一个需要每天处理上万张商业级图像生成请求的项目,最初基于ComfyUI的方案在原型阶段表现良好,但当并发请求超过50时,响应时…

2026/7/25 7:42:31阅读更多 →
KAN混合模型在时间序列预测中的实践与优化

KAN混合模型在时间序列预测中的实践与优化

1. 项目背景与核心目标 最近在复现几篇关于Kolmogorov-Arnold Networks(KAN)的论文时,发现这个新型网络架构与传统深度学习模型结合后展现出惊人的潜力。为了系统评估不同组合模型的性能差异,我设计了一套完整的对比实验方案&…

2026/7/25 7:42:31阅读更多 →
基于大模型的个性化数学学习系统设计与实践

基于大模型的个性化数学学习系统设计与实践

1. 项目背景与核心价值初中数学作为基础教育的关键环节,学生的学习效果直接影响后续理科学习能力。传统在线教育平台普遍存在三个痛点:教学内容同质化、练习题目匹配度低、学习路径缺乏个性化。这个开源项目通过大模型技术实现了三个突破:动态…

2026/7/25 7:42:31阅读更多 →
AI测试中的法规遵循与伦理实践指南

AI测试中的法规遵循与伦理实践指南

1. 项目概述在人工智能测试领域,法规遵循与伦理实践正成为不可忽视的关键环节。作为一名长期从事AI系统测试的从业者,我深刻体会到合规性测试已经从边缘需求变成了核心要求。特别是随着GDPR等数据保护法规的出台,以及生成式AI的爆发式应用&am…

2026/7/25 7:40:31阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →