本文主要讲解RestTemplate 的原理,具体的使用会链接其他博文。
RestTemplate的本质就是再Http的网络请求中增加一个马甲,用户只要通过 url即可进行服务器访问,也就是RestTemplate底层只是封装了一层网络请求,这就是RestTemplate的本质所在。
- RestTemplate是Spring提供的用于访问Rest服务的客户端,
- RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。
一、RestTemplate的各种方法的调用网上很多,请参考以下链接,每篇一样,这里就不再讲解其方法调用。
https://blog.csdn.net/itguangit/article/details/78825505
一、RestTemplate的核心之一 Http Client。
目前通过RestTemplate 的源码可知,RestTemplate 可支持多种 Http Client的http的访问,如下所示:
- 基于 JDK HttpURLConnection 的 SimpleClientHttpRequestFactory,默认。
- 基于 Apache HttpComponents Client 的 HttpComponentsClientHttpRequestFactory
- 基于 OkHttp3的OkHttpClientHttpRequestFactory。
基于 Netty4 的 Netty4ClientHttpRequestFactory。
其中HttpURLConnection 和 HttpClient 为原生的网络访问类,OkHttp3采用了 OkHttp3的框架,Netty4 采用了Netty框架。
因此,如果要优化网络访问就需要选择合适的Http Client,需要根据业务的需求并需要深入了解每种Http Client的特性,OkHttp3 已经在另外博文对其进行了详解,以下将通过引入 OkHttp3来讲解RestTemplate。
- 首先,定义一个配置文件,使用注解@Configuration,这个配置文件就是对RestTemplate的自定义。
package com.zteauto.etm.portal;
import org.springframework.context.annotation.Bean;
import org.springframework