从十七章开始搭建SpringCloud项目,再逐步进行优化,加入其它组件。
上一章加入了gateway组件,本次加入feign组件。
feign是用来调用其他服务的接口的,有时候在其他服务需要使用某一个服务的接口数据,但是由于是分布式多个服务,不能直接调用,于是可以使用feign进行调用,下面进行传参和不传参数的演示。
本章是接着上一章进行的,现结构如下:
注意:先跑注册中心服务,不然会报错,因为每个服务的配置里面写了注册自己到哪个注册中心的地址的。
下面假设product服务需要account服务的接口数据,于是测试product服务调用account的接口。
第一步:在account服务(服务被调用方)新增测试接口
第二步:在product服务(服务调用方)导入feign依赖
<!-- feign微服务调用 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
第三步:修改product服务(服务调用方)启动类
第四步:新增product服务(服务调用方)接口文件和接收类
从第一步的新增测试接口可以看到测试的接口返回的是User类和User类集合,所以在product类也新建一个User类来接受返回的数据,此处只是测试简便所以取名User类(不规范)。
User的结构和Account的User类保持一致。
新增feign调用接口类
FeignClient注解的值是服务被调用方配置的服务名:
PostMapping注解的值是接口的完整路径:
注意:带参数时,需要加上RequestParam或者RequestBody注解。
第五步:测试
使用postman测试
上一章整合了gateway,所以测试直接使用gateway网关的地址。可以看到调用成功。