SpringBoot-28-RestTemplate基本介绍

SpringBoot-28-RestTemplate基本介绍

什么是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

SpringBoot-28-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测试

SpringBoot-28-RestTemplate基本介绍

底层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());
    }

如果您觉得本文不错,欢迎关注,点赞,收藏支持,您的关注是我坚持的动力!

原创不易,转载请注明出处,感谢支持!如果本文对您有用,欢迎转发分享!

原文始发于微信公众号(springboot葵花宝典):SpringBoot-28-RestTemplate基本介绍

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/184343.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!