spring事物传播propagation类别含义详解
这篇文章主要介绍了spring事物传播propagation类别含义详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在spring事务中针对注解transaction,我们在定义的时候会注明事物的传播类别,默认的是required。
required:使用当前的事务,如果当前没有事务,则自己新建一个事务,子方法必须运行在一个事务,如果当前存在事务,则加入这个事务,成为一个整体。
ex:领导没饭吃,我有钱,我自己买了自己吃;领导有饭吃,会分给我一起吃。
supports:如果当前有事务,则使用事务;如果当前没有事务,则不使用事务。
ex:领导没饭吃,我也没饭吃;领导有饭吃,我也有饭吃。
mandatory:该传播必须存在一个事务,如果不存在则抛出异常。
ex:领导必须管饭,不管饭没饭吃,我超级不开心,老子不干了(抛出异常)。
requires_new:如果当前有事务,则挂起该事物,并且自己创建一个新的事务给自己使用;如果当前没有事务,则跟required一样
ex:铃铛有饭吃,我看不上,不要,我自己买着自己吃。
not_supported:如果当前有事务,则挂起事务,自己不使用事务去运行数据库操作。
ex:领导有饭吃,分给我吃,我不要放一边,我不吃。
never:如果当前事务存在,则抛出异常。
ex:领导有饭吃,我不想吃,不想让领导也吃,我抛出异常。
nested:如果当前有事务,则开启子事务(嵌套事务),嵌套事务式独立提交或者回滚;
如果当前没有事务,则跟required一样;
如果主事务提交,则会携带子事务一起提交;
如果主事务回滚,则子事务会一起回滚。相反子事务异常,父事务可以回滚或者不会滚(try cache捕获了子事务的异常)。
ex:领导决策不对。老板怪罪,带着小弟我一起受罪。小弟我出现差错,领导可以选择推卸责任或者帮我一起承担。
测试代码结构:
public void 主事务(领导) save(){ 主事务save(); 子事务1save(); 子事务2save(); } //子事务注明事物的传播类型 public void 子事物1(我)save(){ save1(); 1/0; //此处抛异常 } public void 子事务2(我)save(){ save2(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
上一篇:Spring实战之使用@POSTConstruct和@PreDestroy定制生命周期行为操作示例
栏 目:Java
本文标题:spring事物传播propagation类别含义详解
本文地址:https://www.xiuzhanwang.com/a1/Java/8867.html
您可能感兴趣的文章
- 01-10Springboot中@Value的使用详解
- 01-10springboot实现文件上传步骤解析
- 01-10springboot jta atomikos实现分布式事物管理
- 01-10SpringBoot使用RabbitMQ延时队列(小白必备)
- 01-10如何基于SpringBoot部署外部Tomcat过程解析
- 01-10SPRING BOOT启动命令参数及源码详析
- 01-10springboot集成fastDfs过程代码实例
- 01-10springmvc级联属性处理无法转换异常问题解决
- 01-10SPRINGBOOT读取PROPERTIES配置文件数据过程详解
- 01-10Spring注解和同步锁不能同步问题解决
阅读排行
本栏相关
- 01-10Java实现动态模拟时钟
- 01-10Springboot中@Value的使用详解
- 01-10JavaWeb实现邮件发送功能
- 01-10利用Java实现复制Excel工作表功能
- 01-10Java实现动态数字时钟
- 01-10java基于poi导出excel透视表代码实例
- 01-10java实现液晶数字字体显示当前时间
- 01-10基于Java验证jwt token代码实例
- 01-10Java动态显示当前日期和时间
- 01-10浅谈Java中真的只有值传递么
随机阅读
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-11ajax实现页面的局部加载
- 04-02jquery与jsp,用jquery
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10SublimeText编译C开发环境设置
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法实例总结
- 08-05织梦dedecms什么时候用栏目交叉功能?