5
我有谷歌关于Spring支持Servlet 3.0/3.1规范,大部分信息我在这篇文章中发现: Understanding Callable and Spring DeferredResult有Spring MVC中AsyncContext的模拟(如何写在另一个线程http响应)
这里作者说你可以从控制器返回Callable
或DefferedResult
,并且说它是servlet 3.0/3.1在春天维护。
但我不知道如何在我的处境应用它:
我有外部系统,我从这个系统得到的结果asynchrounously。
在控制器我写的是这样的:
externalSystenm.send(requestId, message);
,我有另一个线程在那里我得到的结果:
Message m = externalSystem.get();
m.getRequestId();// According this id I can map message to request
我知道,在Servlet API的我允许保存asyncContext在地图和然后找到它。
我怎样在春天实现它?
我想你回答了你自己的问题。无论何时从外部系统获取消息,只需将其设置在deferredResult中,并且DeferredResult将在线程之间保持共享。当结果线程将延迟结果的结果正确时,它将作为响应提供。 –