来自 Spring 官方博客的消息:
Spring MVC 3.2 M1 将引入对异步请求处理的支持,基于 Servlet 3.0 规范。尽管该版本还没发布,你可以在这里看到包含的改进。
简单预览一下:
一个控制器方法可通过返回 Callable 来完成异步处理:
@RequestMapping
(method=RequestMethod.POST)
public
Callable<String> processUpload(
final
MultipartFile file) {
return
new
Callable<String>() {
public
Object call()
throws
Exception {
// ...
return
"someView"
;
}
};
}
或者控制器方法返回 DeferredResult
(new in Spring 3.2 M1) 来完成处理
@RequestMapping
(
"/quotes"
)
@ResponseBody
public
DeferredResult quotes() {
DeferredResult deferredResult =
new
DeferredResult();
// Add deferredResult to a Queue or a Map...
return
deferredResult;
}
// In some other thread..
// Set the return value on the deferredResult
deferredResult.set(data);
更多关于 Spring MVC 3.2 新特性以及详细说明请看这里。