一文让你搞懂Spring的统一事务模型

Spring事务的知识体系

进入主题之前,先来了解一下Spring事务,都有哪些内容:

Spring事务包含对分布式事务单机事务的支持,我们用的比较多的是单机事务,也就是只操作一个数据库的事务。

单机事务,按照用法分,又可以分为编程式事务模型(TransactionTemplate)和声明式事务模型(@Transactional注解),后者可以理解为 aop + 编程式事务模型。

编程式事务模型里面涉及到很多知识点,比如统一事务模型、事务传播级别、事务隔离级别等。

我们今天要讲的是其中一点,统一事务模型

希望这次的分享能够让大家,对Spring事务有一个整体性的认识。

不仅仅是Template

Spring的统一事务模型,解决的一个核心问题,就是不管你用的是什么数据访问方式,Hibernate、MyBatis抑或是JDBC,你的Service层的代码都是一样的,不需要做任何变动。

使用@Transactional注解的,相信大家都用过,而且由于注解的实现比较隐晦,不利于我们理解原理,这里就不演示。

下面介绍编程式事务模型,TransactionTemplate

不管后面你的Dao实现如何变化,上面这一段Service代码都无需修改,而且依旧可以保持事务的逻辑。

Spring是怎么做到的呢?

有人说,是模板模式

点开TransactionTemplate,的确是封装了事务操作的“套路”:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值