惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Scott Helme
Scott Helme
N
Netflix TechBlog - Medium
AI
AI
Security Latest
Security Latest
GbyAI
GbyAI
P
Proofpoint News Feed
Y
Y Combinator Blog
A
Arctic Wolf
G
Google Developers Blog
U
Unit 42
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Vulnerabilities – Threatpost
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
C
Check Point Blog
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
Cisco Blogs
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
Latest news
Latest news
L
LINUX DO - 最新话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
WordPress大学
WordPress大学
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
The Hacker News
The Hacker News
Simon Willison's Weblog
Simon Willison's Weblog
V
V2EX
Project Zero
Project Zero
博客园_首页

博客园 - KLAPT

Gateway 网关 CodeX =>Skills Redis 内存满了怎么处理 SpringBoot 默认配置修改 JWT 续签 Access Token + Refresh Token 双 Token claudeCode 命令 MyBatis 的 Mapper 接口 AI | CC GUI 集成 IDEA 完整教程 在IDEA中使用Claude Code IDEA中使用CodeX MyBatisPlus解决大数据量查询慢问题 idea 中的 claude code Token Dubbo 和 Spring Cloud Gateway的区别 掌握 Spring 框架这 10 个扩展点 SpringBoot 快速实现 api 加密 Spring Boot/Cloud 中 bootstrap.yml 与 application.yml SpringBoot 实现 DOCX 转 PDF 微服务Token鉴权设计的几种方案 进程、线程、协程 RSA 加密 Java二维码 ntp服务端和客户端 Chronyd与NTP chronyd 作为服务器时钟 chrony sudo命令和su 的区别 java -cp 和 java -jar Maven 项目打包:实现业务代码与第三方依赖分离 达梦数据库创建用户 梦数据库新增大字段报错问题 达梦数据库操作 MySQL UPDATE多表关联更新 达梦数据库 为HTTP POST请求设置请求体 在Java中调用第三方接口并返回第三方页面 Java调用第三方接口的方法 Nginx 之Rewrite 使用详解 linux 命令 Spring Boot项目中集成Spring Security OAuth2和Apache Shiro
Transactional 注解中propagation
KLAPT · 2026-06-03 · via 博客园 - KLAPT

在 Spring 框架中,@Transactional 注解的 ‌propagation‌(传播行为)属性用于定义当一个事务方法被另一个事务方法调用时,事务应该如何传递和控制。

PROPAGATION_REQUIRED‌(默认值)

  • ‌含义‌:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
  • ‌特点‌:这是最常用的配置。外层方法和内层方法共享同一个物理事务。
  • ‌回滚影响‌:只要其中任何一个方法抛出异常导致事务标记为 rollback-only,整个事务都会回滚。即使外层捕获了内层的异常,提交时也会抛出 UnexpectedRollbackException

PROPAGATION_REQUIRES_NEW‌
‌含义‌:无论当前是否存在事务,都‌挂起‌当前事务,并‌创建一个新的事务‌。
‌特点‌:内外层事务完全独立。内层事务的提交或回滚不受外层事务影响,反之亦然。
‌回滚影响‌:内层异常只回滚内层事务;外层异常只回滚外层事务。
‌适用场景‌:需要独立记录的操作,如‌操作日志记录‌、审计流水。即使主业务失败回滚,日志也必须成功保存。

PROPAGATION_NESTED‌

  • ‌含义‌:如果当前存在事务,则在‌嵌套事务‌中执行(使用数据库的 Savepoint 机制);如果当前没有事务,则行为同 REQUIRED
  • ‌特点‌:依赖于底层数据源对 Savepoint 的支持(如 MySQL InnoDB)。
  • ‌回滚影响‌:
    • 若内层异常且外层‌捕获‌了异常:仅回滚内层到 Savepoint,外层可继续执行并提交。
    • 若外层异常:整个大事务回滚。
  • ‌适用场景‌:复杂的业务流程中,允许部分子步骤失败而不影响整体流程(需配合 try-catch 使用)。