spring的事务传播
时间: 2023-10-28 22:59:15 浏览: 89
Spring的事务传播是指在多个方法之间传递事务的行为。根据引用,Spring共有7种事务传播行为:
1. required:默认的传播行为,如果当前有事务,其他方法就会使用当前事务,不会创建新的事务。例如,方法A调用方法B,它们会使用同一个事务。如果方法B没有事务,它们仍然会使用同一个事务。如果其中一个方法回滚,整体都会回滚。
2. required_new:创建一个新的事务,如果当前存在事务,就将当前事务挂起,并创建一个新的事务。
3. supports:如果当前有事务,就使用当前事务,如果没有事务,就不使用事务。
4. not_supported:当前方法不添加事务,即使外部存在事务,也会将当前事务挂起。
5. NEVER:不允许在事务中运行,如果当前存在事务,将会抛出异常。
根据引用,还有两种事务传播行为:
6. mandatory:必须在一个已经存在的事务中运行,否则会抛出异常。
7. nested:如果当前有事务,就在当前事务的嵌套事务中执行,如果当前没有事务,就创建一个新的事务。
总结来说,Spring的事务传播属性定义了方法在调用链中如何处理事务。不同的传播属性适用于不同的业务场景,可以根据具体需求选择合适的传播属性。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Spring事务传播行为](https://blog.csdn.net/m0_73687324/article/details/128255689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [spring事务的传播性](https://blog.csdn.net/weixin_47352187/article/details/113665745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文