java如何实现异步处理:SpringBoot下@EnableAsync与@Async异步任务的使用
出处:互联网  更新时间:2022-04-23
1、@Async失效场景
一、异步方法使用static修饰
二、异步类没有使用@Component注解(或其他注解)导致spring无法扫描到异步类
三、异步方法不能与异步方法在同一个类中
四、类中需要使用@Autowired或@Resource等注解自动注入,不能自己手动new对象
五、如果使用SpringBoot框架必须在启动类中增加@EnableAsync注解
六、在Async 方法上标注@Transactional是没用的。 在Async 方法调用的方法上标注@Transactional 有效。
七、调用被@Async标记的方法的调用者不能和被调用的方法在同一类中不然不会起作用!!!!!!!
八、使用@Async时要求是不能有返回值的不然会报错的 因为异步要求是不关心结果的

2、代码案例
我们在使用多线程的时候,往往需要创建Thread类,或者实现Runnable接口,如果要使用到线程池,我们还需要来创建Executors。

在使用spring中,已经给我们做了很好的支持。只需要添加 @EnableAsync 就可以使用多线程。使用 @Async 就可以定义一个线程任务。通过spring给我们提供的ThreadPoolTaskExecutor就可以使用线程池。

默认情况下,Spring将搜索相关的线程池定义:要么在上下文中搜索唯一的TaskExecutor bean,要么搜索名为“taskExecutor”的Executor bean。如果两者都无法解析,则将使用SimpleAsyncTaskExecutor来处理异步方法调用。
参考案例:https://www.cnblogs.com/zhangzhixi/p/16075524.html

3、异步方法各参数的详细说明
参考案例:https://www.cnblogs.com/zhaoguanglu/p/15653078.html
网站申明:系本文编辑转载,来源于网络,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,所有权归属原作者。如内容、图片有任何版权问题,可联系我们删除
正在被浏览的文章
物流知识  互联网  2024-01-24
企业知识  互联网  2018-08-05
论文荟萃  互联网  2011-06-03
新闻动态   中国经济周刊   2010-12-14
热点文章
物流问答  互联网  2017-01-08
物流问答  互联网  2017-01-08
更多精彩文章点此进入
长按下图选择“设别图中二维码”关注公众号
微信公众号