Python 官方文档:入门教程 => 点击学习
目录一、源码分析二、底层实现切换方法2.1.切换为okHttp2.2.切换为ApacheHttpComponents本文是精讲RestTemplate第2篇,前篇的blog访问地址如
本文是精讲RestTemplate第2篇,前篇的blog访问地址如下:
RestTemplate在spring或非Spring环境下使用精讲
RestTemplate只是对其他的HTTP客户端的封装,其本身并没有实现HTTP相关的基础功能。其底层实现是可以配置切换的,我们本小节就带着大家来看一下RestTemplate底层实现,及如何实现底层基础HTTP库的切换。
RestTemplate有一个非常重要的类叫做HttpAccessor,可以理解为用于HTTP接触访问的基础类。下图为源码:
从源码中我们可以分析出以下几点信息
SimpleClientHttpRequestFactory
。对应的HTTP库是java jdk自带的HttpURLConnection。
HttpComponentsAsyncClientHttpRequestFactory
。对应的HTTP库是Apache HttpComponents。
OkHttp3ClientHttpRequestFactory
。对应的HTTP库是OkHttp
可以通过设置setRequestFactory方法,来切换RestTemplate的底层HTTP客户端实现类库。
从开发人员的反馈,和网上的各种HTTP客户端性能以及易用程度评测来看,OkHttp 优于 Apache HttpComponents、Apache HttpComponents优于HttpURLConnection。所以我个人更建议大家将底层HTTP实现切换为okHTTP。
以下所讲的切换方法,基于第一篇内容:RestTemplate在Spring或非Spring环境下使用精讲
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.7.2</version>
</dependency>
如果是spring 环境下通过如下方式使用OkHttp3ClientHttpRequestFactory初始化RestTemplate bean对象。
@Configuration
public class ContextConfig {
@Bean("OKHttp3")
public RestTemplate OKHttp3RestTemplate(){
RestTemplate restTemplate = new RestTemplate(new OkHttp3ClientHttpRequestFactory());
return restTemplate;
}
}
如果是非Spring环境,直接new RestTemplate(new OkHttp3ClientHttpRequestFactory()
之后使用就可以了。
与切换为okHTTP方法类似、不再赘述。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency>
使用HttpComponentsClientHttpRequestFactory初始化RestTemplate bean对象
@Bean("httpClient")
public RestTemplate httpClientRestTemplate(){
RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory());
return restTemplate;
}
以上就是RestTemplate实现多种底层HTTP客户端类库的切换精讲的详细内容,更多关于RestTemplate底层HTTP客户端类库切换的资料请关注编程网其它相关文章!
--结束END--
本文标题: RestTemplate实现多种底层HTTP客户端类库的切换用法
本文链接: https://www.lsjlt.com/news/142765.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0