Spring MVC可以让控制器返回DeferredResult
和ListenableFuture
(由ListenableFutureTask
实现)来进行异步响应。它们之间的区别是什么?我应该在什么情况下使用它们?
Spring MVC可以让控制器返回DeferredResult
和ListenableFuture
(由ListenableFutureTask
实现)来进行异步响应。它们之间的区别是什么?我应该在什么情况下使用它们?
ListenableFutureReturnValueHandler
将第二种适配为第一种。但是,DeferredResult
类和ListenableFuture
接口来自两个不同的领域:org.springframework.web.context.request.async
包。
2. 第二个来自自4.0以来可用的org.springframework.util.concurrent
包。ExecutorService
框架(请参见ListenableFutureTask
)。DeferredResult
类,或者当您想要使用类似于ExecutorService
的框架时,请使用ListenableFuture
。