Spring Tx 全称为 Spring Transaction Management(Spring 事务管理),是 Spring 为 DB 事务管理提供过的一种便捷的接入方式。
二.导入依赖Step1:在 pom.xml 中导入 spring-tx 依赖
Step:刷新 Maven 依赖,可以看到 spring-tx 联动依赖 spring-core 和 spring-beans 库
三.Spring 目前常用的事务两种机制- 注解式:通过 @Transactional 注解指定的 public 方法,在外部调用的时候通过 AOP 机制,在方法前后自动开启和提交/回滚事务。
- 回调式:通过 TransactionTemplate 组件,提交一个回调方法,在方法前后自动开启和提交/回滚事务,并提供了对事务状态的人孔控制。
准备工作:
- Step1:新建一个 biz.service 包
- Step2:新建一个 UserService 类
- Step3:在 UserService 类填入预备方法
四.注解式事务管理
优点:简单易用,不侵入业务逻辑代码,不会造成可读性和维护性的下降。
缺点:控制粒度较粗,容易造成大事务;类内部调用无法开启事务,容易掉坑。
场景:独立调用 DAO 层的纯 DB *** 作
Step1:手工开启事务管理
Step2:标注需要事务管理的方法
五.回调式事务管理优点:控制粒度较细,事务的边界可见即所得,不存在类内部调用失效的暗坑。
缺点:侵入业务逻辑代码,可读性和维护性会有少许下降
场景:Service 层的精细跨表多 DB *** 作的事务控制
Step1:注入事务管理器 TransactionTemplate(后面简称TM)
Step2:使用TM调用execute或者executeWithoutResult方法,将需要DB事务的代码通过Lambda表达式包裹起来
六.回调式事务管理中的提交和回滚匿名接口方法回调式
Lambda 表达式
无论是哪种表达形式,都可以通过 TransactionStatus 来手动控制事务的提交或者回滚,一种常见的形式如下:
本文章整理自上课PPT,仅供学习使用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)