Spring @Transactional 事务的7大传播特性

2022-06-05 10:37:52 浏览数 (2)

今天有时间, 重新回顾了一下Spring的7大传播特性, 并且我画了图,便于李姐, 自我感觉还不错, 底部还有对领导的吐槽, 下次面试问我对加班的看法, 可以回复 mandatory, NEVER 哈哈哈

required

默认的

使用当前的事务, 如果当前没有事务,则自己新建一个事务,子方法是必须运行在一个事务中的, 如果当前存在事务,则加入当前事务, 成为一个整体

样例:

supports

如果当前有事务, 则使用事务, 如果当前没有事务, 则不使用事务

mandatory

外部必须存在事务, 不存在就抛异常

required_new

如果当前有事务, 则挂起当前事务, 并创建一个自己新的事务, 如果当前没有事务, 则同 required

not_supported

如果当前有事务, 则把当前事务挂起, 自己不使用事务执行,

never

如果当前有事务, 直接抛出异常

nested

如果当期有事务, 则开启一个子事务(嵌套事务), 嵌套事务是独立提交或者独立回滚的, 如果当前没有事务, 则同Required

汇总

传播特性

通俗易懂

required

领导没钱, 我有钱, 我自己吃饭, 领导有钱, 领导给我买饭

supports

领导有钱, 我俩一起吃饭, 领导没钱, 我俩一起饿着

mandatory

领导必须管饭, 不管, 我就报错

required_new

领导管饭, 我不吃, 我就要自己花钱

not_supports

领导没饭吃,我不吃,领导管饭吃,我也不吃

never

领导管饭, 我就报错

nested

领导有错,大家一起走人, 小弟有错, 领导可以决定是否要全部走人

0 人点赞