暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Spring boot 线程池使用——事务处理机制

一言良语 2018-11-30
1350

前四篇文章结合例子简单讲述了spring boot如何配置和使用线程池、如何监听异步执行结果和捕获异常,以及如何使用多线程池进行隔离。

异步任务中,事务也是很关键的一部分。

Spring boot线程池异步的事务处理机制如下图:

(基于spring boot2.0.2版本实践分析得出)

图中表示的是用@Async注解修饰的异步方法,在各种场景下的事务表现。

比如:

异步方法在没有事务注解的情况下,去调用通过@Autowired注入的有事务注解的其他对象方法时,事务是生效的(即表格第三列倒数第二行结论)。

其背后的原理是,AOP的动态代理生成的代理对象和当前对象的区别。

所以,在spring boot线程池使用时,给@Async方法加@transactional是一种比较方便的处理方式。除此之外,将事务主体作为单独对象调用,也可以保证事务生效。





END



推荐阅读

相关文章:

Spring boot 线程池使用

Spring boot 线程池使用——监听执行结果

Spring boot 线程池使用——多线程池隔离

Spring boot 线程池使用——异常处理

spring boot源码分析:(一)启动类注解

spring boot源码分析:(二)启动过程

spring cloud源码分析——ribbon负载均衡策略

一文看懂Spring Bean的生命周期

mybatis简介

mybatis源码分析:(一)SqlSessionFactory创建过程

从输入URL到页面加载完成之间发生了什么

Java的浅拷贝和深拷贝

BIO、NIO、AIO、IO多路复用

关于Java数据库连接池最通俗易懂的介绍

MySQL的事务隔离级别

mysql保证原子性和持久性的利器:undo和redo

你可能喜欢:

《区块链从入门到放弃》先从一个故事说起

《区块链从入门到放弃》比特币和区块链基础介绍

《区块链从入门到放弃》区块链的共识机制——工作量证明、权益证明、委托权益证明

《区块链从入门到放弃》拜占庭容错算法

《区块链从入门到放弃》51%攻击和双花问题

利用Axure中继器实现添加删除商品原型

人工智能写代码?放心,Sketch2Code干不过前端开发






自由,

是因为自己真的有方向。






文章转载自一言良语,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论