spring事务面试

spring的事务传播行为是指在一个事务性的环境中,一个事务方法被另一个事务方法调用时,明确这两个方法之间的事务应该如何交互和控制。

这里涉及到事务的边界 隔离性 以及如何确保数据一致性的问题。

由于事务嵌套本身存在场景的多样性,所以spring提供了7个事务传播行为,供用户选择,来满足不同的场景。

第一个required 如果当前存在事务则加入该事务,如果没有则创建新的事务。

第二个required_new 无论当前是否存在事务都创建一个新的事务(挂起当前事务)。

第三个supports (支持当前事务)如果当前存在事务则加入该事务,如果没有则按非事务的方式运行。

第四个not_supported (不支持当前事务)以非事务的方式运行,如果当前存在事务则挂起当前事务。

第五个mandatory 强制性的,如果当前存在事务则加入该事务,如果当前不存在事务,则报错。

第六个never 以非事务的形式运行,如果当前存在事务则报错。

第七个nested 嵌套事务

 

posted @ 2026-01-06 16:32  人在代码在  阅读(2)  评论(0)    收藏  举报