spring 项目中用于生产代码的 RestTemplate 与 Apache Http Client

RestTemplate vs Apache Http Client for production code in spring project

我们有一个 Spring 项目即将投入生产。目前,该项目正在使用 Apache Http Client。有想把RestTemplate当成HttpClient用。

我正在四处寻找使用 RestTemplate 优于 Apache's 的任何显着优势。此外,了解 HTTP 传输在 RestTemplate 的实现中做了什么也会很有趣。 Apache Http Client 已被多个团体使用多年,口碑良好。

我们会冒险搬到 RestTemplate 吗?

此外,这 blog 指出需要为生产配置 RestTemplate,尽管配置是最小的。

谢谢

RestTemplate 和 HttpClient 不在同一抽象级别上运行。

HttpClient 是使用 HTTP 进行通信的通用库,而 RestTemplate 是更高级别的抽象,处理 JSON/XML 实体转换等。

RestTemplate delegates to a ClientHttpRequestFactory, and one of the implementations of this interface 使用 Apache 的 HttpClient。

因此,如果目标是与 Restful API 通信,并且您仍想使用 HttpClient,则可以使用 RestTemplate 而不是 HttpClient。

请注意,我刚才所说的正是您链接到的博客所解释的内容:

So, the solution is to use the org.springframework.http.client.HttpComponentsClientHttpRequestFactory, which is a ClientHttpRequestFactory delegating the creation of the requests to an HttpClient.