我有关于Servlet 3.0 / 3.1规范的Spring支持的Google以及我在本文中找到的大多数信息:了解Callable和Spring DeferredResult
在这里作者说您可以从控制器返回Callable
或DefferedResult
说是在春季维护的servlet 3.0 / 3.1。
但是我不知道如何在我的情况下应用它:
我有外部系统,并且从该系统意外得到结果。
在控制器中,我这样写:
externalSystenm.send(requestId, message);
我有另一个线程可以得到结果:
Message m = externalSystem.get();
m.getRequestId();// According this id I can map message to request
我知道在Servlet API中,我允许将asyncContext保存在map中,然后找到它。
春天我该怎么办?
我发现以下文章:Spring MVC 3.2预览版:Servlet 3,异步支持简介
例:
@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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句