1 RestTemplate扫盲
借助 RestTemplate,Spring应用能够方便地使用REST资源
2 准备
创建三个springCloud项目
》Eureaka : 服务注册中心
》Product 商品服务
》Order 订单服务
技巧01:Eureaka 项目需要引入 spring-cloud-starter-netflix-eureka-server 依赖;其余两个项目需要引入 spring-cloud-starter-netflix-eureka-client 依赖
技巧02:order 服务需要调用 product 项目中的资源数据【请求url为:http://127.0.0.1:8080/msg】,我们可以利用 RestTemplate 来实现
坑01:所有的 springCloud项目中设置 eureka.instance.hostname 配置时需要注意,因为这个配置必须是IP地址或者域名;因为利用LoadBalancerClient根据应用名获取到的数据就是这个配置
坑02:直接利用RestTemplate实现时是古老的方式实现,而且如果远程服务是集群部署时需要自己实现负载均衡的逻辑
3 RestTemplate的三种使用方式
3.1 直接将url写死
》创建 RestTemplate 实例 restTemplate
》调用 restTemplate 的 getForObject 方法获取数据
技巧01:getForObject 第一个参数接受一个string类型的url,例如:http://127.0.0.1:8080/msg;第二个参数指定响应数据类型
技巧02:这是古老的方式实现,需要自己实现负载均衡和远程服务的信息配置
RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.getForObject("http://127.0.0.1:8080/msg", String.class);