标签:过程 sync 容器管理 基于 executor java and aspectj 不用
背景在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。
Spring 异步执行Async简介
Spring中用@Async注解标记的方法,称为异步方法,其实就相当于我们自己在当前方法里面:new Thread(()-> System.out.println("hello world !"))。br/>按@Async注解使用的基本方法:
在方法上添加@Async注解;br/>所使用的@Async注解方法的类对象应该是Spring容器管理的bean对象;
调用异步方法类上需要配置上注解@EnableAsync
calling MyBean#runTask() thread: main
Running task thread: SimpleAsyncTaskExecutor-1
result from task: task result
在Spring中,@Async这个注解用于标记的异步的方法。方法上一旦标记了这个方法,当其它线程调用这个方法时,就会开启一个新的线程去异步处理业务逻辑。br/>简单的把@Async注解放到Bean的方法上就会使用不同的线程运行,也就是说,调用者执行此方法不用一直等待整个方法执行完毕。
在Spring中比较有趣的一点就是事件机制也支持异步处理,如果你想这样使用的话。
让我们开始使用JAVA的注解配置开启异步处理机制,只需要简单的加上@EnableAsync注解到配置类上即可。
标签:过程 sync 容器管理 基于 executor java and aspectj 不用
原文地址:https://blog.51cto.com/15015181/2556226