Spring事务的七种传播行为(快速记忆)

propagation(单词含义:传播)

1、propagation_required(传播)

从这个单词的中文翻译我们可以得出以下结论,事务(@Transtational)使用该类型时,如果当前不存在事务则需要创建一个新的事务去进行,如果当前存在事务就加入到这个事务当中去

2、propagation_supports(需要支持,那么既然它这里都说了只是支持,也就是说没有很强烈的指定一个事务行为可以理解为“双标”)

从这个单词的中文翻译我们可以得出以下结论:事务使用该类型时,会出现以下情况,如果当前存在事务,我就以事务的方式去执行,如果当前不存在事务,我就以没有事务的方式去进行任务。

3、propagation_mandatory(强制,这里指明了很强烈的语气)

从这个单词我们可以的得出,该行为具有以下特征:如果当前存在事务,我就执行当前事务,如果当前不存在事务,我们就抛出异常,任性!

4、propagation_required_new(需要新的,说明我需要一个新的事务)

从这个单词我们可以得出,如果当前没有事务我就新建一个事务,如果当前存在事务,就像当前事务挂起,再新建事务,反正我一定要新建一个事务。

5、propagation_not_supports(不支持,我不支持事务,但是我没有强烈反对)

从这个单词我们可以得出,如果当前存在事务,那么我就将当前事务挂起,我现在当前这个任务按照没有事务的方式进行下去,不管怎么样,我就是要按照没有事务的方式进行下去,但是我也不破坏别人的运行结构。

6、propagation_never(从来不,我不需要任何事务,语气很强烈)

从这个单词我们可以得出,我不管怎么样,我就是要无事务的方式进行执行,如果当前存在事务我就要抛出异常,一定要影响他人的程序运行结果。

7、propagation_nested(嵌套,我可以在事务中在创建一个事务)

从这个单词我们可以得出,如果当前存在事务,然后运行到我这里,我就自己另起一个事务,我的事情不需要其他人来管理,我自己的事情可以自己解决,但是我也不破坏别人的运行结构,然后如果当前没有事务,我也会自己创建一个事务来管理我自己。总体来说就是有事务就嵌套,没事务就自己创建。


这一套下来是不是理解简单多了呢,超好记!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容