首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring RestTemplate终极使用归纳总结

前言

第一次看到这个的时候,还是遥远的2017年,记得那年去广西亚信学习,然后从一个项目中看到了,那个时候也就知道怎么用,也就有那么个大概的印象。后来从广西回来后,这几年基本上也就没有过多的写Java代码了,基本就是与C++和Lua为伴;而这些年基本也就不写代码了,更多的是看别人写代码,前段时间评审团队的代码时,发现在调用第三方提供的服务时,都是直接使用的HttpClient调用的,你要是使用HttpClient的话,也是没有任何问题的,关键是你自己封装的工具类还漏洞百出。后来经过评审,由于我们的整个项目都是基于Spring框架的,最后还是决定直接使用RestTemplate+HttpClient的方式调用第三方的服务。

说说RestTemplate

既然要使用,然后自己又好几年没有写Java了,然后又手痒,就写篇文章总结下这个,以及如何使用。

是Spring框架提供的一个在应用中调用其他Restful服务的一个工具,它简化了与Http服务的通信方式,统一了Restful的标准,对使用方来说,提供了非常友好的上层API接口。相较于上面说的HttpClient,是一种更优雅的调用Restful服务的方式。所以说,好用才会用。

在中包含以下几个部分:

:对象转换器;将请求对象转换为具体的数据格式输出,例如:提供对xml格式的输入输出支持;可以参见这篇文章,通过实战搞懂;

:客户端请求工厂接口,可以通过使用指定不同的HTTP请求方式;实现了该接口就都可以与进行集成,后面会细说与不同的框架进行集成;默认是JDK的;

:异常错误处理;可以参考这篇文章,看下如何自定义异常处理;

:请求拦截器

以后有机会,我们会再在源码的层面上来对上面的几个部分进行分析。下面来看下类提供的一些主要API:

方法名

描述

下面就开始通过实战的代码来熟悉一下。

RestTemplate实战

说了这么多,最重要的还是需要落实在实战上面。下面通过一个基于Spring Boot的测试工程来演示如何使用。

使用示例:

使用示例:

使用示例:

使用示例:

使用示例:

异常处理

前面也简单说了一下异常处理,在Spring中对于提供了一个默认的异常处理,我们在自定义异常处理时建议继承该默认继承类,例如这样:

在构建实例的时候,需要设置异常处理:

RestTemplate与OkHttp集成

上面也说到默认是与JDK的进行的集成,但是在实际生产项目中,能力不够强大,无法满足我们的要求。而RestTemplate本身又具备与实现了接口的Http Client类库进行集成,在实际工作中,最多的就是RestTemplate与OkHttp集成和RestTemplate与HttpClient集成,这里就重点把这两种集成方式进行总结。

至于OkHttp的牛叉之处,我这里就不再叙述了,因为好用,我这里才进行总结。

要使用OkHttp,首先要添加以下Maven依赖:

接下来,我们对OkHttp3进行配置:

RestTemplate与HttpClient集成

对于HttpClient,首先要添加以下Maven依赖:

接下来,我们对HttpClient进行配置:

总结

各种找资料,编码验证,用了好久,终于搞定这篇文章,这篇文章里面最大的就是用代码说话,文中的所有代码都经过测试,可以直接复制使用。总结了这篇文章,以后在使用的时候会更加从容和得心应手。

2020年11月7日 于呼和浩特。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201108A04PF400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券