许久之前就接触Spring异步任务了,通过@Asyns注解标示一个异步任务,再通过配置类@EnableAsyns开启Spring异步支持即可实现简单的异步案例,但是对于带返回值的异步任务则无法通过这种简单的方法实现,此时需要异步方法返回Future对象,而获取的方法也有所不同,需要调用Future对象的get方法,这类似于通过Callable接口实现多线程(其实可以断定其底层就是基于Callable接口),废话不多说直接上代码。
定义异步的业务方法:
// 异步方法
@Async
public Future<String> getStr2()
{
try
{
// 模拟延迟
Thread.sleep(1000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
return new AsyncResult<>("返回值");
}
// 返回集合类型
@Async
public Future<List<String>> getStr3()
{
List<String> list=new ArrayList<>();
try
{
// 模拟延迟
Thread.sleep(1000);
list.add(&