@Async 注解的使用
2024-09-08 19:04:47
1、@Async介绍
在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作
例如, 在某个调用中,需要顺序调用 A, B, C三个过程方法;如他们都是同步调用,则需要将他们都顺序执行完毕之后,方算作过程执行完毕; 如B为一个异步的调用方法,则在执行完A之后,调用B,并不等待B完成,而是执行开始调用C,待C执行完毕之后,就意味着这个过程执行完毕了。
2、应用场景
在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。
3、 @Async调用中的事务处理机制
在@Async标注的方法,在其调用数据库操作之时,将无法产生事务管理的控制,原因就在于其是基于异步处理的操作。
那该如何给这些操作添加事务管理呢?可以将需要事务管理操作的方法放置到异步方法内部,在内部被调用的方法上添加@Transactional.
例如: 方法A,使用了@Async/@Transactional来标注,但是无法产生事务控制的目的。
方法B,使用了@Async来标注, B中调用了C、D,C/D分别使用@Transactional做了标注,则可实现事务控制的目的。
最新文章
- C++求一个十进制的二进制中1的个数
- 【C++】DDX_Control、SubclassWindow和SubclassDlgItem的区别
- wex5 教程 之 图文讲解 考题模块框架设计
- apache下自定义404错误页面
- iOS开发——UI篇&;九宫格算法
- c语言typedef关键字的理解
- 导出Excel帮助类
- yii 使用renderPartial调用另外一个控制器的视图
- Java网络编程-对象编解码方案、优劣对照
- 【JSP】JSP Action动作标签
- Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
- 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘
- python中赋值,深拷贝,浅拷贝区别
- 亚马逊IOT-SDK,线程池数
- angular2的ngfor ngif指令嵌套
- 剑指OFFER例题——从尾到头打印链表
- 升级framework4.0后form认证票据失效的问题
- Newtonsoft.Json 序列化小写首字母
- class装载原理
- uva-784-水题-搜索