Feign可以帮助我们实现面向接口编程,可以直接调用其他的服务简化开发
使用方法:
- 在启动类上添加一个注解
@EnableFeignClients - 创建一个接口并且和服务模块做映射
接口里的方法与要使用的服务的Controller中的方法对应,这里有一个坑,在这个接口中不允许使用
@GetMapping和@RequestMapping。 - 实际使用:通过这个接口的对象去获取对应服务中的方法
Feign中传递参数的方式:
- 如果你传递的参数,比较复杂时,默认会采用POST的请求方式。
- 传递单个参数时,推荐使用@PathVariable,如果传递的单个参数比较多,这里也可以采用 @RequestParam,不要省略value属性。
- 传递对象信息时,统一采用json的方式,添加@RequestBody。
下面就是一个例子,用户调用搜索模块中的功能
- Search模块有三个方法
- 封装Fegin的client接口,用于给用户模块调用Search模块功能
- 封装用户模块的控制层,通过fegin去调用Search模块中的功能