欢迎来到我的博客🍺|

会飞的稻草人丶

园龄:2年9个月粉丝:3关注:0

通俗易懂的spring事务的传播机制讲解!

spring事务理解

前提两个都是事务的方法,并且两个方法会进行调用,调用方统一使用required

举例有两个方法:

  1. required

如果当前上下文存在事务,被调用方则加入该调用方的事务,没有的话就新建(指单独被调用时)一个事务

  1. supports

支持事务,上下文中有事务,被调用方则加入该事务,单独被调用时则没有事务

  1. mandatory

必须有事务,上下文有事务,被调用方则加入该事务,单独调用时直接抛异常,因为这时候没有一个活动的事务

  1. requires_new

被调用方会单独开启事务,调用方存在事务则将调用方挂起来,两个事务互不相干

  1. not_supported

总是非事务的方式执行,调用方调用时会直接被挂起

  1. never

总是非事务的方式执行,调用方调用时会直接抛异常

  1. nested

嵌套子事务,外层影响内层,内层不影响外层,除非外层try-catch并在catch中向外抛出异常

2.使用TransactionTemplate实现编程式事务

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>

springboot中引入mybatis-spring-boot-starter依赖包即可。mybatis-spring-boot-starter依赖包中包含了spring-boot-starter-jdbc的依赖,spring-boot-starter-jdbc中包含DataSourceTransactionManager事务管理器以及自动注入配置类DataSourceTransactionManagerAutoConfiguration。

代码中使用,在使用bean中注入TransactionTemplate即可:

@Service
public class TestServiceImpl {
    @Resource
    private TransactionTemplate transactionTemplate;
    public Object testTransaction() {
        //数据库查询
        dao.select(1);
        return transactionTemplate.execute(status -> {
            //数据库新增
            dao.insert(2);
            dao.insert(3);
            return new Object();
        });
      }
}

参考文章:
https://blog.csdn.net/weixin_39625809/article/details/80707695
https://blog.csdn.net/yzh_1346983557/article/details/118492783

本文作者:会飞的稻草人丶

本文链接:https://www.cnblogs.com/dengxiaoyi/p/17283533.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   会飞的稻草人丶  阅读(129)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示
🙃点歌请留言
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 错过的烟火 周杰伦
  2. 2 还在流浪 周杰伦
  3. 3 倒影 周杰伦
  4. 4 红颜如霜 周杰伦
  5. 5 粉色海洋 周杰伦
  6. 6 在你的身边 盛哲
  7. 7 还在流浪 刘季庭
  8. 8 下一个天亮 颜人中
  9. 9 忘记时间 胡歌
  10. 10 牡丹江 南拳妈妈
还在流浪 - 周杰伦
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

周杰伦 - 还在流浪

作词:方文山

作曲:周杰伦

老书摊 和啤酒空罐

散落地上

报废的回忆在路旁

有了锈斑

有某种无所谓

在这小镇弥漫

这个城市步调

是如此的缓慢

霓虹灯闪烁的倒影

靠在窗上

错过美好的那时光

能否再遇上

老旧的车站 空旷的车厢

怀念从前的人来人往

招牌的灯泡 在夜里微亮

过去的背包 就留在异乡

于是我决定 离开这个地方

当你收到信 我还在流浪

那年的约定 都放在心上

随身的照片里

你微笑的模样

亲爱的 你现在怎么样

当你收到信 我还在流浪

想起牵着手 走过的小巷

我依然记得

年少初吻的那教堂

还有一起画爱心的那道墙

霓虹灯闪烁的倒影

靠在窗上

错过美好的那时光

能否再遇上

老旧的车站 空旷的车厢

怀念从前的人来人往

招牌的灯泡 在夜里微亮

过去的背包 就留在异乡

于是我决定 离开这个地方

当你收到信 我还在流浪

那年的约定 都放在心上

随身的照片里

你微笑的模样

亲爱的 你现在怎么样

当你收到信 我还在流浪

想起牵着手 走过的小巷

我依然记得

年少初吻的那教堂

还有一起画爱心的那道墙

当你收到信 我还在流浪

那年的约定 都放在心上

随身的照片里

你微笑的模样

亲爱的 你现在怎么样

当你收到信 我还在流浪

想起牵着手 走过的小巷

我依然记得

年少初吻的那教堂

还有一起画爱心的那道墙