完成用@Async注释的函数

时间:2014-05-06 12:41:48

标签: java spring-mvc asynchronous synchronization

我从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

1 个答案:

答案 0 :(得分:0)

@Async注释方法可以返回Future对象。当你调用get on Future时,它会阻塞,直到从完成返回它的@Async方法。