首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Spring–事务处理–速览

Spring–事务处理–速览

作者头像
Java架构师必看
发布于 2021-05-14 16:46:05
发布于 2021-05-14 16:46:05
4430
举报
文章被收录于专栏:Java架构师必看Java架构师必看

Spring事务处理

事务处理,事务隔离

@Transactional事务处理

Spring事务传播行为

  • 事务传播行为 指的是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行.
  • 例如,方法A事务方法调用方法B事务方法时.方法B是继续调用者方法A的事务中运行,还是为自己开启一个新的事务运行,这就是由方法B的事务传播行为决定的

Spring事务的传播行为

事务隔离级别—mysql

传播行为 属于 Spring 中A方法调用B方法


## `PROPAGATION`

required: 必须的

Supports…支持的

mandatory …强制的

REQUIRES_NEW…需要新的

supported:支持

Never从不

1.REQUIRED–默认传播行为 如果存在一个事务,则支持当前事务,如果没有事务则开启一个新的事务

如果当前的线程存在事务,则加入到当前线程的事务,如果当前线程没有事务则从新的创建一个新的事务

2 Supports 如果存在一个事物,支持当前事务,如果没有事务,则非事务的执行,.

当前线程中如果存在事务,则加入该线程事务执行,如果该线程没有存在事务则以非事务的形式执行

3.MANDATORY 如果已经存在一个事务,支持当前事务,如果没有一个活动的事务,则抛出异常

如果当前线程中存在一个事务,当我们A 调用B 的方法的时候 B 不回抛出异常 如果当前线程中不存在事务,直接访问B方法 就会抛出异常

4.REQUIRES_NEW 总是开启一个新的事务,如果一个事务已经存在,则将这个存在的事务挂起

当A调用B方法的时候, A已经创建了一个事务,进入到B方法的时候,则会创建一个新的事务为事务B

5.NOT_SUPPORTED 总是非实物的执行,并挂起任何存在的事务

当前线程不管是否存在事务,则以非事务的形式执行

6.NEVER 总是非事务的执行,如果存在一个活动事务,则抛出异常

通俗易懂方式:

A调用B方法:

B方法上REQUIRED

  1. 方法A调用B
  2. 直接方法B方法

如果直接访问B方法的话,就会创建一个新的事务

如果方法A调用B方法,则B会加入到当前A的事务

本文来源面相薪水编程,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • Spring事务处理
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档