弹簧控制器方法中的@Async

时间:2015-12-30 07:08:59

标签: java spring spring-boot

Spring Controller REST方法默认为Asynchronized。

那么@Async注释的目的是什么?

@RequestMapping(value = "/status/{id}", method = RequestMethod.GET)
@Async
public Future<Status> getStatus(@PathVariable("id") String id) {    
    return new AsyncResult<Status>(status);    
}

Future接口和AsyncResult类的作用是什么?

1 个答案:

答案 0 :(得分:3)

@Async :可用于“即发即弃”方案,例如发送电子邮件,启动数据库作业。调用者立即获得响应,而后台作业完成处理。

  
    

Future接口和AsyncResult类的作用是什么?

  

Future 表示异步计算的结果。

AsyncResult Future 的实现,包装了异步执行的返回类型。

根据this博客,Callable是控制器方法的适当返回类型。

ref Async vs callable controllers