Spring学习-Spring Tx

Spring学习-Spring Tx,第1张

一.概述

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,仅供学习使用

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/874221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存