事务的传播级别
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,除非是嵌套事务的情况下需要重点了解。
如本文有侵权行为,请及时与本人联系,多多包涵!
小生初出茅庐,多多指教!
本文来自博客园,作者:it-小林,转载请注明原文链接:https://www.cnblogs.com/linruitao/p/19198919

浙公网安备 33010602011771号