SprinbBoot学习之RestTemplate

RestTemplage:

RestTemplate:是由Spring Web项目提供,作用是使Java访问url更加方便,更加优雅。

在实际开发中,经常需要发送一个GET/POST请求到其他系统(Rest api),通过JDK自带的HttpURLConnection,ApacheHttpClient,Netty4,OKHTTP 2/3 都可以实现,Spring的RestTemplate封装了这些库的实现,使用起来更加的简洁,简而言之,RestTemplate是Spring提供的一种更加简单便捷的模板类来操作访问restful服务。

 

RestTemplate组成:

         1:HTTPMessageConverter  对象转换器

         2:ClientHttpRequestFactory默认是JDK的HttpURLConnection

         3:ResponseErrorHandler  异常处理

         4:ClientHttpRequestInterceptor  请求拦截器


简介:它是spring提供的异步的客户端http访问的核心class,它提供非常简单的RESTful方式与http server端进行数据交互,根据所提动的URLs进行http访问,并处理返回结果。它是基于JDK HTTP connection建立的。因此他可以使用不同的HTTP库(apache,netty and OkHttp)来setRequestFactory。

 

 

详细介绍:

         1:RestTemplate的引入

                   RestTemplate的完整路径:org.springframework.client.RestTemplate

         可以通过上面的路径看出RestTemplate是Web下,项目中只需要加入Spring-web的依赖就可以了。

 

2:我们看一下RestTemplate的构造




其中第一个进行默认的初始化,没法进行更多的限制和后续处理,比如设置超时时间等

第二个构造方法中,就可以传入ClientHttpRequestFactory参数,ClientHttpRequestFactory接口的实现类中存在timeout属性等

 

如:

 

@Bean  //将RestTemplate实例注入Spring容易

RestTemplate  restTemplate(){

SimpleClientHttpRequestFactory requestFactory = newSimpleClientHttpRequestFactory(); requestFactory.setConnectTimeout(3000);requestFactory.setReadTimeout(3000);

 RestTemplaterestTemplate = new RestTemplate(requestFactory);

 return  restTemplate;

}

 

调用时可以通过

@Autowired

private RestTemplate restTemplate;

3:RestTemplate对Http method的支持


HTTP Method

RestTemplate Method

GET

getForObject,getForEntity

POST

postForEntity,PostForLocation,postForObject

 

实例:

项目目录结构图



添加依赖:


程序入口:


RestTemplate配置类:



编写返回对象:



异常类:


使用RestTemplate远程调用

写两种,一种正常返回,将结果封装成User对象

二种:当远程调用返回 RestClientResponseException 异常的时候封装成ErrorBody对象(比如传入参数不合法等数据验证,不能返回逾期结果的时候会返回Error信息,这时候需要做处理)



修改端口:

         为了同时启动两个服务,端口肯定是不能一样的

接下来测试吧~







                 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值