spring mvc中是否有AsyncContext的模拟?(如何在另一个线程中编写http响应)

Is there analog of AsyncContext in spring mvc?(how to write http response in another thread)

我 google 关于 spring 对 servlet 3.0/3.1 规范的支持以及我在本文中找到的大部分信息: Understanding Callable and Spring DeferredResult

这里作者说你可以 return CallableDefferedResult 来自控制器并说它是 servlet 3.0/3.1 维护在 spring.

但我不明白如何在我的情况下应用它:

我有外部系统,我从该系统异步获取结果。

在控制器中我写了这样的东西:

externalSystenm.send(requestId, message);

我还有另一个线程可以得到结果:

Message m = externalSystem.get();
m.getRequestId();// According this id I can map message to request

我知道在 servlet 中 API 我允许在 map 中保存 asyncContext 然后找到它。

如何在 spring 中实现?

我找到了以下文章: Spring MVC 3.2 Preview: Introducing Servlet 3, Async Support

示例:

@RequestMapping("/quotes")
@ResponseBody
public DeferredResult<String> quotes() {
  DeferredResult<String> deferredResult = new DeferredResult<String>();
  // Add deferredResult to a Queue or a Map...
  return deferredResult;
}


// In some other thread...    <-- important phrase
 deferredResult.setResult(data);
// Remove deferredResult from the Queue or Map