首页 > 其他分享 >Spring事务传播机制理解

Spring事务传播机制理解

时间:2022-09-02 11:34:46浏览次数:62  
标签:事务 调用 Spring REQUIRED 存在 传播 当前 NESTED

REQUIRED:如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务。
REQUIRES_NEW:主事务和里面的事务独。
SUPPORTS:当前存在事务,则加入当前事务,如果当前没有事务,就以非事务方法执行。
NOT_SUPPORTED:不论当前是否存在事务,都会以非事务的方式运行。
MANDATORY:当前存在事务,则加入当前事务,如果当前事务不存在,则抛出异常。
NEVER:不使用事务,如果当前事务存在,则抛出异常。
NESTED:如果当前事务存在,则在嵌套事务中执行,否则REQUIRED的操作一样(开启一个事务)

 

NESTED和REQUIRED的区别
REQUIRED情况下,调用方存在事务时,则被调用方和调用方使用同一事务,那么被调用方出现异常时,由于共用一个事务,所以无论调用方是否catch其异常,事务都会回滚
而在NESTED情况下,被调用方发生异常时,调用方可以catch其异常,这样只有子事务回滚,父事务不受影响

标签:事务,调用,Spring,REQUIRED,存在,传播,当前,NESTED
From: https://www.cnblogs.com/liangwenchao-912/p/16649206.html

相关文章

  • spring boot项目打包后依赖丢失
    springboot项目本地可以运行,打包之后运行jar包缺少驱动依赖。原因是jar包是从外部下载到本地再导入进来,打包时没有一起打包进来。百度试了几个方案,最后是用下面这个方案......
  • SpringMVC 04: SpringMVC中4种页面跳转方式
    转发和重定向的页面跳转方式页面跳转方式,本质上只有2种方式:转发+重定向但在SpringMVC的具体实现上,转发可以细分为:普通的页面转发+经由action方法的页面转发重定向......
  • Spring装配bean之通过 XML代码装配 bean
      在Spring中,对象无需自己查找和创建与其所关联的其他对象。相反,容易负责把需要相互协作的对象引用赋予各个对象。例如,一个订单管理的组件需要信用卡认证组件,但它不需要......
  • SpringBoot的异步、定时、邮件任务
    13、异步、定时、邮件任务13.1、前言在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会......
  • Spring整合Redis(十八)
    一、Redis简介Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sortedsets)等。Redi......
  • SpringBoot简单使用(2)
    1.2.7:CommandLineRunner接口:开发中可能会有这样的情景。需要在容器启动后执行一些内容。比如读取配置文件,数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我......
  • SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求
    请求或响应的中文乱码问题tomcat9解决了get请求和响应的中文乱码问题,但是没有解决post请求或响应的中文乱码问题tomcat10解决了get和post请求以及响应的中文乱码问题......
  • Springboot整合Sentinel实现流控
    在Springboot项目中整合Sentinel实现流控,Gateway整合Sentinel见Gateway整合Sentinel,Sentinel-daahboard的改造见Sentinel-dashboard改造(普通流控和网关流控规则持久化到Nac......
  • Spring(四)-声明式事务
    Spring-04声明式事务1、事务的定义事务就是由一组逻辑上紧密关联的多个工作单元(数据库操作)而合并成一个整体,这些操作要么都执行,要么都不执行。2、事务的特性:ACID1)原子......
  • SpringBoot上传文件
    前端使用ElementUI+Vue后端使用SpringBoot1前端代码1.0组件导入&初始化导入ElementUI、Axios、Vue的资源。完成Vue的初始化和生效区域的设置。这些资源都能找到,把......