Spring 事务 - 基本使用、传播机制、失效场景、嵌套事务多回滚解决

目录

一、Spring 事务的使用

1.1、编程式事务(了解即可)

1.2、注解实现声明式事务

1.2.1、@Transactional 注解的使用

1.2.2、参数说明

1.2.3、声明式事务对异常的处理

1.2.3、@Transational 的工作原理

二、Spring 事务的传播机制

2.1、事务传播机制是什么?

2.2、事务的传播机制有什么作用

2.3、事务的传播机制中有哪些?

2.3.1、支持当前调用链上的事务

2.3.2、不支持当前调用链上的事务

2.3.3、嵌套事务

2.4、代码示例

2.4.1、支持当前事务(REQUIRED)示例

2.4.2、嵌套事务示例 

三、Spring 事务失效场景

3.1、访问权限

3.2、方法被 final 修饰

3.3、未被 Spring 管理

3.4、多线程(不在同一个线程下)

3.5、表不支持事务

3.6、事务没有开启

3.7、事务的传播机制

3.8、try catch

3.9、非 RuntimmeException 及其子类异常

3.10、自定义回滚异常

四、嵌套事务导致多回滚,如何解决?


一、Spring 事务的使用


1.1、编程式事务(了解即可)

Spring 编程式事务的使用主要有 3 个步骤:

  • 开启事务(获取事务):通过 Spring Boot 中内置的 DataSourceTransactionManager 的 getTransaction 方法,并搭配内置的 TransactionDefinition 实例作为方法的参数,来获取事务(此操作同时也会开启事务)。
  • 提交事务:DataSourceTransactionManager 创建出实例后,使用它的 commit 方法(参数是 getTransaction 方法的返回值,也就是 TransactionStatus,它的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈亦康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值