Spring的事务是如何回滚的

Spring的事务是如何实现的

spring的事务是aop来实现的 首先要生成具体的代理对象 然后按照aop的整套流程来执行具体的操作逻辑 ,正常情况下要通过通知来实现的 ,但是事务不是通过通知来实现的 而是通过TransactionInterceptor来实现的,然后调用invoke来实现具体的逻辑

1解析各个方法事务相关的属性 根据具体的属性来判断是否开始新的事务

2当需要开启的时候 获取数据库的链接 关闭自动提交的功能 开启事务

3执行具体的sql逻辑

4在操作过程中 如果执行失败了 那么通过completeTransactionAfterThrowing 看来完成事务的回滚操作 回滚具体的逻辑是通过doRollBack方法来实现的 先获取链接 通过连接对象来回滚

5如果执行过程中 没有任何以外情况的发生 那么通过commitTransactionAfterReturning 来完成提交操作 提交具体的逻辑是通过docommit方法来实现的 先获取链接 通过连接对象来提交

6.当事务执行完毕之后 需要清楚相关的事务信息 cleanupTransaciton

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努力努力在努力H

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

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

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

打赏作者

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

抵扣说明:

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

余额充值