举例讲解spring事务传播行为

举例讲解spring事务传播行为
最新回答
月影依风

2026-05-13 20:40:37

Spring事务传播行为决定了当多个方法相互调用时,事务如何被共享或独立管理。以下是两种常用的事务传播行为的举例讲解:

1. REQUIRED 描述:如果当前没有事务,则创建一个新事务;如果当前存在事务,则加入该事务。 举例: 场景:进行转账操作,方法A和方法B。 情况一:方法A不加事务注解,方法B被标记为REQUIRED。 结果:方法B会创建新事务独立执行。若转账成功,则两账户金额变化;若失败,则事务回滚,金额恢复原状。方法A和B分别在各自的事务中独立执行。 情况二:方法A也加事务注解,调用方法B。 结果:B方法和A方法中的事务合并到同一个事务中。若执行中发生异常,事务回滚,转账操作失败,两账户金额保持在调用前状态。

2. REQUIRES_NEW 描述:无论当前是否存在事务,都会创建一个新事务执行。 举例: 场景:同样进行转账操作,方法A和方法B。 结果:无论方法A是否有事务,调用方法B都会创建新的事务执行。若转账1000成功,转账2000失败,最终结果是两个方法分别在各自事务中独立执行,张三账户增加1000,李四账户金额不变。

这两种事务传播行为是Spring事务管理中非常常见的,它们帮助开发者在不同场景下灵活管理事务,确保数据的完整性和一致性。