spring事物传播propagation类别含义详解

 更新时间:2019年12月25日 14:53:11   作者:ID_小汤  
这篇文章主要介绍了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();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java进阶之SPI机制详解

    Java进阶之SPI机制详解

    Java SPI机制在很多大型中间建码,例如Dubbo中均有采用,属于高级Java开发的进阶必备知识点,务必要求掌握.文中有非常详细的代码示例及解释,需要的朋友可以参考下
    2021-05-05
  • Java的Spring框架中AOP项目的一般配置和部署教程

    Java的Spring框架中AOP项目的一般配置和部署教程

    这篇文章主要介绍了Java的Spring框架中AOP项目的一般配置和部署教程,AOP面向方面编程的项目部署结构都比较类似,因而也被看作是Spring的一种设计模式使用,需要的朋友可以参考下
    2016-04-04
  • Java版本和C++版本的二叉树序列化与反序列化

    Java版本和C++版本的二叉树序列化与反序列化

    这篇文章主要介绍了Java版本和C++版本的二叉树序列化与反序列化,二叉树就是节点在内存区域中串联起来的,但是如果掉电,内存上的数据就没有了。为了保存这种结构,将二叉树用字符串的形式保存到硬盘中,这就是序列化;从字符串形式转换为二叉树,这就是反序列化
    2022-06-06
  • Spring Cloud入门系列服务提供者总结

    Spring Cloud入门系列服务提供者总结

    这篇文章主要介绍了Spring Cloud入门系列之服务提供者总结,服务提供者使用Eureka Client组件创建 ,创建完成以后修改某文件,具体操作方法及实例代码跟随小编一起看看吧
    2021-06-06
  • java设计模式学习之工厂方法模式

    java设计模式学习之工厂方法模式

    这篇文章主要介绍了java设计模式学习之工厂方法模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 浅谈Java中ThreadLocal引发的内存泄漏

    浅谈Java中ThreadLocal引发的内存泄漏

    本文主要介绍了浅谈Java中ThreadLocal引发的内存泄漏,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java看完秒懂版熔断和降级的关系

    Java看完秒懂版熔断和降级的关系

    这篇文章主要介绍了Java熔断和降级的关系,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 如何通过javacv实现图片去水印(附代码)

    如何通过javacv实现图片去水印(附代码)

    这篇文章主要介绍了如何通过javacv实现图片去水印(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • java实现图片上传至本地实例详解

    java实现图片上传至本地实例详解

    我们给大家分享了关于java实现图片上传至本地的实例以及相关代码,有需要的朋友参考下。
    2018-08-08
  • 深入解析Java中的数据类型与变量

    深入解析Java中的数据类型与变量

    这篇文章主要介绍了深入解析Java中的数据类型与变量,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09

最新评论