概念

@FeignClient可以实现远程调用接口,方便做统一处理。

使用流程

启动类

增加@EnableFeignClients,声明开启FeignClients远程调用。可以通过basePackages属性指定client所在包位置,保证可以被扫描到。

接口类

@FeignClient常用属性

属性名描述
name指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
url指定@FeignClient调用的地址
decode404当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
configuration配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
fallback定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
fallbackFactory工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
path定义当前FeignClient的统一前缀,当我们项目中配置了server.context-path,server.servlet-path时使用

如果当前接口类继承了父接口,同样需要声明@FeignClient,否则扫描不到。
注意:如果当前接口类继承了父接口,在使用时只可以使用子接口类,否则会导致出现多个Bean,无法注入。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐