theme: smartblue
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情
写在前面
Feign是微服务中服务间调用的优选组件,后来的OpenFeign也是基于此来开展的。
我会创建一个新的专栏,来保存我最近使用Feign的一些心得和问题点,欢迎大家关注。
为什么要梳理一下Feign注解@FeignClient中的各个参数?
上篇文章已经说到了,主要还是踩坑太多了,或者面试的时候被问的措手不及,所以决心整理一下。
参数一栏表
@FeignClient的源码示例图如下:
今天我们就将这其中全部的参数都说一下。
name
name,和value的作用一样,都是服务名。
这里可以从源码中看出来。
这两个参数互为别名,说白了,你用哪个都是一样的。
那为什么一样的值要声明两个呢?
因为要配合其他组件使用,比如Ribbon,和其搭配使用时,就要取Feign的name值;其他组件有的又要去value值。
所以弄了两个值,也可以更灵活一些。
qualifier
说起这个参数,你一定知道另外一个注解:@Qualifier
@Qualifier的用处就是指定固定的Bean。
所以在FeignClient中的参数也差不多,标记当前修改的Bean名称。
可以让你在其他类中调用此Bean,当然了,这个默认值为空也是可以的,因为这个参数值和primary是有关系的。
我们下一篇文章中会说道primary参数。
示例如下:
java @FeignClient(value = "demo1", contextId = "demo1-1", qualifier = "demo1Feign")
url
url,这个比较好理解,不再是服务名了。而是一个完整的链接。
此参数如果和value、name一并存在,只会根据url参数来执行调用。
url参数可以让Feign不再局限于服务间调用,而是也可以访问任何url,这里面可以是baidu、也可以是google。
示例如下:
java @FeignClient(value = "demo1", contextId = "demo1-1", qualifier = "demo1Feign", url = "https://baidu.com")
小结
今天我们就FeignClient注解的name、url、qualified参数做出了解释和应用示例,大家学废了吗?
后面还有decode4040、fallback等参数的解释,可以关注专栏查看下一篇文章。