首先,远程调用有两个角色,即:消费者、提供者
就从这两个角色来分别描述Feign的使用
-
提供者:服务注册,提供Feign接口,Controller
消费者:服务发现,注入Feign接口,调用Feign方法
-
提供者:
1,pom文件中注入openfeign依赖
2,在启动类添加注解 @EnableFeignClients 开启Feign功能
3,注册接口
注意:接口上方必须打上@FeignClient注解
属性 name:指定提供者的微服务名称
contextId:唯一标识,当一个微服务中存在多个FeignClient接口调用同一个提供者时的场景(必须配置该属性,否则程序启动会报错)
4,编写Controller
只需在提供者服务中编写Controller,方法的类型(Get\Post\Put\Delete)、路径、方法名、返回值类型、参数必须与上面的接口一致 (推荐直接复制接口的抽象方法加上方法体即可)
以上,提供者的工作完成;
-
消费者:
1,添加依赖,与提供者一致
2,服务发现,在消费者服务的启动类上加上
@EnableFeignClients(basePackages = "com.itheima.*.feign") 注解
属性 basePackages:发现路径下的所有feign接口,当有多个路径是可以以数组的方式填写 basePackages = { "路径1","路径2",...}
3,在需要远程调用的类中注入提供者接口
4,调用方法,最好加个判断,判断远程调用是否出现错误,方便得知错误信息