持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情
写在前面
Feign是微服务中服务间调用的优选组件,后来的OpenFeign也是基于此来开展的。
我会创建一个新的专栏,来保存我最近使用Feign的一些心得和问题点,欢迎大家关注。
为什么要梳理一下Feign注解@FeignClient中的各个参数?
实在是踩了很多坑,才不得已全看一遍。
为了不让大家也频繁踩坑,于是今天特此整理一下@FeignClient注解里面包含的各个参数,以及一些使用方式和示例。
参数一栏表
首先我们可以从IDEA中查看@FeignClient的源码。
这里我截了一张图。
今天我们就将这其中全部的参数都说一下。
value
value代表的服务名,是开发中最常用的。
比如现在有一个服务是demo1,在FeignClient注解中要填充的就是demo1服务名,如下。
@FeignClient(value = "demo1")
serviceId
serviceId,从名字上来也是服务名的意思,但是官方已经标注弃用了,最好不要用了,否则之后升级版本这个参数后这个参数被干掉了,可就有的忙了。
@FeignClient(value = "demo1", serviceId = "demo1")
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等参数的解释,可以关注专栏查看下一篇文章。