gpt4 book ai didi

spring - RestTemplate 与 WebClient 在基于 Servlet 的 web-mvc 应用程序中的优势

转载 作者:行者123 更新时间:2023-12-04 15:06:29 28 4
gpt4 key购买 nike

我正在寻找对以下声明中粗体文本的澄清(我提供了完整的段落仅用于上下文):

The RestTemplate is not a good fit for use in non-blocking applications, and therefore Spring WebFlux application should always use the WebClient. The WebClient should also be preferred in Spring MVC, in most high concurrency scenarios, and for composing a sequence of remote, inter-dependent calls.



在这里找到: https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html

特别是使用 WebClient 有什么好处?超过 RestTemplate对于 Spring MVC 应用程序?怎么会 WebClient实现更高的规模与说 RestTemplate配置了 apache HttpClientPoolingHttpClientConnectionManager具有适当配置的连接和套接字配置?

最佳答案

经过一番研究,相信答案就在Spring的DeferredResult .从这个 blog 中窃取一点废话,

DeferredResult is a container for possibly not-yet-finished computation that will be available in future. Spring MVC uses it to represent asynchronous computation and take advantage of Servlet 3.0 AsyncContext asynchronous request handling.



我相信发生在 WebFlux 之前,这个 DeferredResult 概念是在 Spring MVC 内部支持异步 IO 的第一个切入点,例如还有一个现已弃用的 AsyncRestTemplate返回 ListenableFuture wrapper 。

所以这意味着如果我有一个相对简单的带有 spring MVC 的 REST API,我可能会返回一个 DeferredFuture通过 WebClient 异步生成结果,从而获得异步处理的一些好处,而不必从 Spring MVC 迁移(这对于某些项目可能是不可行的)。

关于spring - RestTemplate 与 WebClient 在基于 Servlet 的 web-mvc 应用程序中的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51953826/

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