服务之间的调用-Feign

135 阅读1分钟

Feign可以帮助我们实现面向接口编程,可以直接调用其他的服务简化开发

使用方法:

  1. 在启动类上添加一个注解@EnableFeignClients
  2. 创建一个接口并且和服务模块做映射 image.png 接口里的方法与要使用的服务的Controller中的方法对应,这里有一个坑,在这个接口中不允许使用@GetMapping@RequestMapping
  3. 实际使用:通过这个接口的对象去获取对应服务中的方法 image.png

Feign中传递参数的方式:

  1. 如果你传递的参数,比较复杂时,默认会采用POST的请求方式。
  2. 传递单个参数时,推荐使用@PathVariable,如果传递的单个参数比较多,这里也可以采用 @RequestParam,不要省略value属性。
  3. 传递对象信息时,统一采用json的方式,添加@RequestBody。

下面就是一个例子,用户调用搜索模块中的功能

  1. Search模块有三个方法 image.png
  2. 封装Fegin的client接口,用于给用户模块调用Search模块功能 image.png
  3. 封装用户模块的控制层,通过fegin去调用Search模块中的功能 image.png