引入OpenFeign依赖
定义FeignClient接口类(注解
@FeignClient
),声明这个接口类是用来远程调用其他服务的接口类中定义要远程调用的接口方法 ,指定远程服务方法的路径
Controller类中调用接口方法
开启远程调用(注解
@EnableFeignClients
)远程调用的流程:
- @RequestBody将这个对象转为json
- 找到passjava-study服务,给study/studytime/member/list/test服务发送请求
- 将json放到请求体里面,发送请求
- 对方服务收到请求,请求体里有json数据
- 将请求体中的json数据转换成对方服务的参数类型。只需要两边的字段名称和类型是一致的。
例如:
1.引起open-feign依赖
1 | <dependency> |
2.在要调用的服务coupons写一个请求方法
1 | @RequestMapping("/member/list") |
3.在member服务编写一个接口,就是写一个service,告诉SpringCloud这个服务需要远程调用
1 | 注意声明每一个方法都是调用哪个远程服务的请求 |
4.在member写调用请求
1 | @Autowired |
5.在启动类开启调用功能,并指定向刚刚写的接口包的路
1 | @EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign") |
6.总结
1 | /coupons请求--->调用CouponFeignService接口--->通过@FeignClient注解扫描到gulimall-coupon服务--->调用/coupon/coupon/member/list请求--->执行membercoupons方法 |