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

推荐订阅源

博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
V
Visual Studio Blog
雷峰网
雷峰网
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog

博客园 - KLAPT

ROW_NUMBER() 一台服务器最大能支持多少条 TCP 连接 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
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 使用)。