首页 > 其他分享 >RestTemplate基本介绍

RestTemplate基本介绍

时间:2023-09-15 11:03:08浏览次数:26  
标签:基本 web Http RestTemplate 介绍 Bean public 客户端


什么是RestTemplate

RestTemplate是从Spring 3.0开始支执行Http请求的客户端工具,常见的Http客户端库有

  • Jjava JDK自带的HttpURLConnection
  • Apache HttpComponents
  • OkHttp

这些客户端库对,提供常见的REST请求模板,例如Get、Post、PUT和Delete请求,相对于直接使用底层Http客户端库,RestTemplate的操作更加方便、快捷在很大程度上提高开发效率。

SpringBoot使用RestTemplate

从Spring3.0引入RestTemplate后它就作为spring-web的一部分,而spring-boot-starter-web保重包含了spring-web

RestTemplate基本介绍_初始化

因此只需要添加spring-boot-starter-web依赖即可

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

RestTemplate初始化

SpringBoot在AutoConfig的时候,自动注入了JDK自带的HttpURLConnection作为RestTemplate底层的Http客户端实现,也可以将底层的Http实现转换为OkHttpApache HttpComponents,并且需要初始化Bean。

@Configuration
public class MyRestTemplate {

    /**
     * 默认使用JDK 自带的HttpURLConnection作为底层实现
     * @return
     */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

注入RestTemplate

我们将RestTemplate注入到我们需要使用的地方进行测试,我们使用知乎专栏免费测试接口地址,测试

@RequestMapping("/test")
@RestController
public class TestController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("zhihu")
    public String test(){
        String forEntity = restTemplate.getForObject("https://zhuanlan.zhihu.com/api/columns/zhihuadmin", String.class);
        return forEntity;
    }
}

然后在postman中输入http://localhost:8080/test/zhihu测试

RestTemplate基本介绍_客户端_02

底层Http客户端库切换

我们在网上对Http客户端的测评来看OkHttp的性能优于Apache HttpComponents和JDK自带的HttpURLConnection,那么我们如何将底层Http客户端库切换为我们需要使用的Http客户端库呢?

切换为OkHttp

  • 添加依赖
<dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.1</version>
        </dependency>
  • 初始化RestTemplate的Bean
@Bean
    public RestTemplate restTemplateOkHttp(){
        return  new RestTemplate(new OkHttp3ClientHttpRequestFactory());
    }

切换为Apache HttpComponents

  • 添加依赖
<dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
        </dependency>
  • 初始化RestTemplate的Bean
@Bean
    public  RestTemplate restTemplateHttpClient(){
        return new RestTemplate(new HttpComponentsClientHttpRequestFactory());
    }

标签:基本,web,Http,RestTemplate,介绍,Bean,public,客户端
From: https://blog.51cto.com/maguobin/7479260

相关文章

  • §1. 关于实数集完备性的基本定理
    掌握闭区间套定理、聚点定理和有限覆盖定理的内容及证明。会运用这些定理证明相关题目,如例1、例2。注意定理成立的条件。重点习题:第1、3、5、7。    博雷尔(Borel)(1871年1月7日-1956年2月3日),是法国数学家。他的一生成就甚丰,对数学分析、函数论、数论、代数、几何、数学......
  • 【开源】无忧企业文档文库管理界面介绍
    无忧企业文档是软开企服研发的一款集知识库、网盘、在线协同为一体的企业级办公软件,有完全免费的开源版,也有功能丰富的商业版。开源版在社区开放了全量源码,商业版支持提供源码,支持二次开发,适合中小企业使用。文件管理界面介绍文档采用目录资源管理模式,进入文库界面如下图所示,包括:文......
  • 【研究生学习】Pytorch基本知识
    本篇博客将记录Pytorch的基本知识,包括Pytorch的环境配置、Pytorch的结构,Pytorch的基本操作等Pytorch环境配置我是采用在Anaconda下安装Pytorch的方案,关于这个可以参考网上的大佬写的博客,跟着一步步走就行,比如下面这一篇:在Anaconda下安装Pytorch的超详细步骤除此之外,如果采用在......
  • spring框架基本常识
    ●Spring框架是什么?A:spring是一个开源轻量级JavaEE框架,可以解决企业应用开发的复杂性。提供了IOC、AOP两部分核心能力。●什么是IOC?A:IOC即控制反转,例如之前创建对象是通过new来创建,现在把创建对象的过程交给spring,我们直接使用。●什么是AOP?A:面向切面编程,不改变原代码的情......
  • MATLAB:基本的数学运算与矩阵运算
    学习一门技术最好的方式就是阅读官方文档,你可以查看MATLAB官方文档MATLAB基本语法变量MATLAB中的变量不需要声明。使用=为变量赋值。变量名与大多数编程语言相同,MATLAB中的变量名是大小写敏感的。变量名只能由[0~9,a~z,A~Z,_]组成,且变量名不能以数字开头。保留变量......
  • Vue介绍
    前端的发展史1HTML(5)、CSS(3)、JavaScript(ES5、ES6、ES11):编写一个个的页面->给后端(PHP、Python、Go、Java)->后端嵌入模板语法->后端渲染完数据->返回数据给前端->在浏览器中查看2Ajax的出现->后台发送异步请求,Render+Ajax混合3单用Ajax(加载数据,DOM渲染页面......
  • ES中Nested数据类型介绍
    ES中Nested数据类型官网地址注:针对集合类型的属性,对象数组存储,默认情况下ES会对其进行扁平化处理。在使用DSL语句进行查询时,必须按照Nested方式进行搜索,否则搜索不到数据。使用Nested数据类型可以避免扁平化处理Nested(嵌套类型):是object的一种数据类型,允许对象数组以相互独立......
  • 如何写论文的 abstract摘要和introduction背景介绍
    摘要是题目的扩展、简介是摘要的扩展、正文是简介的扩展,逻辑紧密,环环紧扣。无论是摘要、简介还是正文,围绕的核心都是一个点:题目,突出的是工作内容+创新点。其实无论是核心还是sci,写科技文就像是写八股文,套路都是一样的。下面提供一点写摘要和背景介绍的思路和建议。如何写abstract......
  • PostgreSQL-分区表介绍
    一、分区简介表分区是解决一些因单表过大引用的性能问题的方式,比如某张表过大就会造成查询变慢,可能分区是一种解决方案。一般建议当单表大小超过内存就可以考虑表分区了。表的分区就是将一个逻辑上的大表(主要指数据量大),切分为多个小的物理的分片。1.分区的优点1)在某些情况......
  • Lnton羚通视频分析算法平台人员闯入算法检测告警详细介绍
    Lnton羚通的算法算力云平台有以下显著特点:高性能、高可靠性、高可扩展性和低成本。用户可以通过该云平台获取高效、强大的算法计算服务,快速而灵活地运行各种复杂的计算模型和算法。该平台广泛涵盖机器学习、人工智能、大数据分析和图像识别等领域。此外,云平台还提供丰富的算法库和......