SpringCloud中Feign注解@FeignClient参数一览表(一)

612 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情

写在前面

Feign是微服务中服务间调用的优选组件,后来的OpenFeign也是基于此来开展的。

我会创建一个新的专栏,来保存我最近使用Feign的一些心得和问题点,欢迎大家关注。

为什么要梳理一下Feign注解@FeignClient中的各个参数?

实在是踩了很多坑,才不得已全看一遍。

为了不让大家也频繁踩坑,于是今天特此整理一下@FeignClient注解里面包含的各个参数,以及一些使用方式和示例。

参数一栏表

首先我们可以从IDEA中查看@FeignClient的源码。

这里我截了一张图。

image.png

今天我们就将这其中全部的参数都说一下。

value

value代表的服务名,是开发中最常用的。

比如现在有一个服务是demo1,在FeignClient注解中要填充的就是demo1服务名,如下。

@FeignClient(value = "demo1")
serviceId

serviceId,从名字上来也是服务名的意思,但是官方已经标注弃用了,最好不要用了,否则之后升级版本这个参数后这个参数被干掉了,可就有的忙了。

@FeignClient(value = "demo1", serviceId = "demo1")

image.png

contextId

contextId,主要用于一个服务多个FeignClient的时候,如果为空,则会使用value或者name的值。

假设如果demo1服务,只有一个FeignClient接口是没问题;但是如果有两个FeignClient都指向了demo1。

服务将会报错,因为重复了。

所以这个contextId登场了,设置一个标识key,用这个key来分别获取不同的FeignClient即可。

@FeignClient(value = "demo1", contextId = "demo1-1")
@FeignClient(value = "demo1", contextId = "demo1-2")

小结

今天我们就FeignClient注解的value、serviceId、contextId做出了解释和应用示例,大家学废了吗?

后面还有name、url等参数的解释,可以关注专栏查看下一篇文章。