【问题标题】:Drawbacks/Advantages of RestTemplate/HttpClientRestTemplate/HttpClient 的缺点/优点
【发布时间】:2012-12-04 00:20:11
【问题描述】:

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

附加说明:我在处理 REST 服务时经常使用 soapui。我对 REST 概念的熟悉使我倾向于 RestTemplate(一旦我开始编写代码,它似乎更能即插即用我在 soapui 中所做的事情),但如果 HTTPClient 可以给我相同的功能,即使它更冗长,并且已经为我完成了大部分工作,我想听听只走 HTTPClient 路线的理由。

【问题讨论】:

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

标签: java spring rest


【解决方案1】:

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

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

另外,检查这个答案: RestTemplate vs Apache Http Client for production code in spring project

其中提到了值得研究的几点。

【讨论】:

    猜你喜欢
    • 2018-04-03
    • 1970-01-01
    • 2012-01-18
    • 2011-04-05
    • 2010-09-20
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多