事务的传播级别

Spring 事务定义了7种传播机制:

1) PROPAGATION_REQUIRED(默认)

行为:若当前存在事务则加入,否则新建事务

场景:适用于绝大数业务方法

实例:方法A调用方法B,两者共享同一事务

2) PROPAGATION_REQUIRES_NEW

行为:始终新建独立事务,原事务挂起

场景:需要独立提交/回滚的子操作(如日志记录)

示例:事务A执行中调用事务B,B失败不影响A的回滚

3) PROPAGATION_SUPPORTS

行为:若当前存在事务则加入,否则以非事务方式执行

场景:查询操作兼容事务与非事务环境

4) PROPAGATION_NOT_SUPPORTED

行为:强制以非事务方式执行,挂起当前事务(若有)

场景:需绕过事务管理的特殊操作(如文件操作)

5) PROPAGATION_MANDATORY

行为:强制要求当前存在事务,否则抛出异常

场景:确保方法仅在事务上下文中调用

6) PROPAGATION_NEVER

行为:强制要求无事务环境,否则抛出异常

场景:禁止事务影响的敏感操作。

7) PROPAGATION_NESTED

行为:在现有事务中创建嵌套子事务(支持部分回滚)

场景:复杂业务中需要局部回滚的子操作

Spring 事务传播级别一般不需要定义,默认就是PROPAGATION_REQUIRED,除非是嵌套事务的情况下需要重点了解。

 

posted @ 2025-11-07 10:37  it-小林  阅读(6)  评论(0)    收藏  举报