Java RestTemplate/HttpClient的缺点/优点

Java RestTemplate/HttpClient的缺点/优点,java,spring,rest,Java,Spring,Rest,希望这个问题证明是有建设性的,不要让我生气(“你试过谷歌吗?”)。我正慢慢地从java新手状态中爬出来,目前面临着一个需要做出的决定,这个决定与我需要为测试RESTful服务而构建的项目有关。我们有一个使用HTTPClient的内部java框架设置。然而,我已经阅读了一些建议,指出当您处理RESTful服务时,最好使用REST专用工具,如Jersey。这里的一位开发人员建议我使用RestTemplate。我已经开始阅读RestTemplate文档,并复习了我们自己的HTTPClient实现的代码

希望这个问题证明是有建设性的,不要让我生气(“你试过谷歌吗?”)。我正慢慢地从java新手状态中爬出来,目前面临着一个需要做出的决定,这个决定与我需要为测试RESTful服务而构建的项目有关。我们有一个使用HTTPClient的内部java框架设置。然而,我已经阅读了一些建议,指出当您处理RESTful服务时,最好使用REST专用工具,如Jersey。这里的一位开发人员建议我使用RestTemplate。我已经开始阅读RestTemplate文档,并复习了我们自己的HTTPClient实现的代码。基本上,我可以A:构建现有的HTTPClient工作,以嵌入到我自己的项目中;B:使用RestTemplate创建一个全新的项目。从长远来看,A可能更快,而B可能更合适/更有价值。如前所述,虽然我已经有了很好的java知识基础(处理类、方法、修饰符、包结构、继承和组合等),但我现在刚刚开始掌握像我刚才描述的这个问题(使用哪些工具)这样的细节。我很高兴能得到专家们对这两种选择的一些缺点和优点的意见


附加说明:我在处理REST服务时经常使用soapui。我对REST概念的熟悉使我倾向于使用RestTemplate(一旦我开始编写代码,我在soapui中所做的工作就更像是即插即用了),但如果HTTPClient可以为我提供相同的功能,即使它更为冗长,而且大部分工作已经为我完成,我想听听选择HTTPClient路线的原因

请注意Spring 5文档中的这一点:

注意:从5.0开始,非阻塞的、反应式的
org.springframework.web.reactive.client.WebClient
提供了一种现代的
restemplate
替代方案,有效地支持同步和异步以及流式场景。
RestTemplate
在将来的版本中将被弃用,并且今后不会添加主要的新功能。有关更多详细信息和示例代码,请参阅Spring框架参考文档的
WebClient
部分

此外,请检查以下答案:


这提到了几个值得研究的问题。

RestTemplate是HttpClient上的一个方便的包装器。它只是简化和抽象了一些最常见的用例和代码。除非我得到任何其他的输入,否则我可能会使用rest模板。做了一个简单的介绍,刚刚整理了纯HTTPClient。现在我正试图弄明白为什么eclipse告诉我没有像.releaseConnection()这样的方法:(我想OP想知道一些事情,比如:它是否阻塞、支持HTTP/2、支持流媒体、如何通过HTTPS连接等等。我认为这是完全有效的。实际上,谷歌把我带到了这里。)(