《SpringCloud》笔记三:RestTemplate实现服务之间的远程调用

所有课程的学习及相关资料都是源自b站黑马程序员
感谢黑马程序员给予我们新手的无私帮助,感谢!!!
黑马程序员-----yyds

一、开始

唠叨一句,每个SpringCloud版本其实都对应了一个SpringBoot的版本,所以大家在使用SpringCloud的时候还是需要注意一下自己的SpringBoot版本。
在这里插入图片描述
然后我们再谈谈微服务的服务拆分操作,以前我们写一个后端web项目的时候,所有的业务都是写在一个项目里面的,现在我们模拟两台不同的机器(也就是order-servcieuser-service),也就是拆分出来了两个服务,现在我们要解决的问题是如何让两个服务之间可以互相调用,而且调用的返回数据类型满足我们所需要的数据类型。

那么,在开始本次任务之前,我们需要先说明一下我们的需求:

  • 我们现在有两个模块(order-service模块,代表订单模块,user-service模块,代表用户模块)。
  • 需求是用户通过订单模块,不仅查出订单数据,而且也要一并查出与该订单关联的用户数据 。

在这里插入图片描述

完成上面的叙述,我们再看看我们上次导入的项目内容
先看到order-service这个服务

在这里插入图片描述

很明显order-service里面的这个控制器是可以支持根据id来查询订单的,返回是查询的对象数据,但是由于控制器类型使用的是@RestController,所以返回给浏览器的结果应该是被封装为json数据的对象数据。

打开cmd内的数据库连接

我们运行order-service,在浏览器下输入如下地址进行测试结果

在这里插入图片描述
没有问题,同理我们再测试一下user-service
运行,浏览器输入如下数据

在这里插入图片描述

二、服务远程调用说明

我们的需求如下

在这里插入图片描述
我们再看看我们上次查到的数据里面是否有用户数据

在这里插入图片描述
很明显查出的结果是null,说明并没有查出用户数据。

那么来揪一揪里面的问题:

浏览器为什么可以请求获取到相关的订单数据,因为浏览器给后端服务器发送了一个http请求,那要想订单模块获取到用户模块的数据,我们是不是也可以让订单模块也模拟给用户模块服务器模拟发送http请求呢,这样子是不是就可以解决问题了。

在这里插入图片描述
然后再将获取的数据进行结合是不是就得到了我们想要的结果。

在这里插入图片描述

三、RestTemplate的使用

那么Spring框架也为我们提供了一种发送各种Htpp请求的工具类——
RestTemplate

好的,我们知道使用那个工具之后,就按部就班开始干活吧。

3.1 注册RestTemplate

我们应该在Spring相关的配置文件里面配置RestTemplate,而很明显,通过@SpringBootApplication修饰的类就是一个配置类,而且还是项目的启动类,我们可以在该类里面将RestTemplate注册为一个Bean供Spring管理,到时候我们使用的时候只需要实现自动装配的注解就可以。

很明显,我们现在是order-service模拟给user-service发送http请求,以获取到user的数据。所以我们需要为order-service配置该工具类。

在这里插入图片描述
这样,我们的配置注册任务就完成了。

3.2 RestTemplate发送http请求

进入到OrderService.java类里面,我们需要修改一些代码

在这里插入图片描述
我们再进行如下的操作

在这里插入图片描述
提一句,上面模拟的是对user-service模块的http请求,返回是默认类型是json类型,但是我们需要的是user类型,所以进行了转换。

完成代码的修改,我们重新运行order-service程序
然后打开浏览器, 输入以下URL数据

在这里插入图片描述

可以看到,这次的User属性就不是null了,现在我们就实现了简单的模拟http请求了。

到此为止,我们完成了简单的服务远程调用功能。
共勉

求一键三连、谢谢!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨小街

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值