一尘不染

RestTemplate与Apache Http Client在Spring项目中的生产代码

spring-boot

我们有一个Spring项目即将投入生产。目前,该项目正在使用Apache Http Client。有一种使用RestTemplateas
的想法HttpClient

我正在四处寻找使用RestTemplateover的任何显着优势Apache's。另外,知道哪种HTTP传输在其实现中执行RestTemplate也会很有趣。ApacheHttp Client已被多个小组使用多年,并享有良好的声誉。

我们会冒险搬到RestTemplate吗?

此外指出,尽管配置很小,但必须配置RestTemplate进行生产。

谢谢


阅读 389

收藏
2020-05-30

共1个答案

一尘不染

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

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

RestTemplate
委托给ClientHttpRequestFactory,并且此接口的实现之一使用Apache的HttpClient。

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

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

因此,解决方案是使用org.springframework.http.client.HttpComponentsClientHttpRequestFactory,这是一个ClientHttpRequestFactory,将请求的创建委托给HttpClient。

2020-05-30