gpt4 book ai didi

java - Spring MVC : the difference between DeferredResult and ListenableFuture?

转载 作者:搜寻专家 更新时间:2023-10-31 20:00:35 28 4
gpt4 key购买 nike

Spring MVC 让 Controller 返回DeferredResultListenableFuture(由ListenableFutureTask 实现)来做异步响应。有什么不同?我应该什么时候使用它们?

最佳答案

由于 ListenableFutureReturnValueHandler 使第二个适应第一个,它们在概念上彼此相似并且可以互换用作 Controller 的方法结果。

但是,DeferredResult 类和ListenableFuture 接口(interface)都来自两个不同的世界:

  1. 首先来自 3.2 版本中添加的 org.springframework.web.context.request.async 包。
  2. 第二个来自 org.springframework.util.concurrent 包,从 4.0 开始可用。

此外,它们是为满足不同的需求而添加的。虽然第一个提供了用于异步提供 Controller 结果的基本和完整功能,但第二个还允许您将您的实现与现有的类/框架联系起来,例如 ExecutorService 框架(请参阅 ListenableFutureTask).

所以最重要的是,当DeferredResult 类足以让您自己实现进一步处理时使用 ListenableFuture 当您想要使用类似ExecutorService 的框架。

关于java - Spring MVC : the difference between DeferredResult and ListenableFuture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37873322/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com