You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中@Transactional与@Retryable注解的交互机制是什么?

事务与重试注解的顺序为何会影响执行逻辑?

一般来说注解顺序不影响功能,但Spring里的事务注解(@Transactional)和重试注解(比如@Retryable)是特例——二者的顺序直接决定了事务和重试的执行边界:

  • 要是把事务放在重试的范围内:执行出错时,事务会先回滚、抛出异常,接着Spring才会触发重试,每次重试都会重新开启新事务。
  • 要是把重试放在事务的范围内:重试过程中捕获的异常不会触发事务回滚,所有重试步骤都在同一个事务里跑,直到最后执行失败,整个事务才会一起回滚。

另外还有个需要留意的点:如果重试期间数据库配置发生了变更,可能会导致重试逻辑用新配置执行,但初始事务的上下文和新配置不匹配,进而引发其他问题。

内容的提问来源于stack exchange,提问作者Bryan Tan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:12:03