我从spring-mvc控制器调用异步函数。
@Async
public void doSomething()
{
....
}
我只是从控制器方法
调用此函数@RequestMapping(/person)
@ResponseBody Person returnPerson()
{
service.doSomething();
}
函数returnPerson按预期返回。但是我想返回DeferredResult
来表示returnPerson的完成。
@RequestMapping(/person)
@ResponseBody DeferredResult<Person> returnPerson()
{
service.doSomething();
}
我认为要发生这种情况,我应该知道deSomething何时完成执行,以便我可以将响应返回给调用者。我不知道怎么知道doSomething何时完成执行,然后我如何根据它返回DeferredResult
?
答案 0 :(得分:0)
@Async注释方法可以返回Future对象。当你调用get on Future时,它会阻塞,直到从完成返回它的@Async方法。