@FeignClient使用
概念@FeignClient可以实现远程调用接口,方便做统一处理。使用流程启动类增加@EnableFeignClients,声明开启FeignClients远程调用。可以通过basePackages属性指定client所在包位置,保证可以被扫描到。接口类@FeignClient常用属性属性名描述name指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用
·
概念
@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,无法注入。
更多推荐
已为社区贡献1条内容
所有评论(0)