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

360 阅读2分钟

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

写在前面

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

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

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

上篇文章已经说到了,主要还是踩坑太多了,或者面试的时候被问的措手不及,所以决心整理一下。

参数一栏表

@FeignClient的源码示例图如下:

image.png

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

name

name,和value的作用一样,都是服务名。

这里可以从源码中看出来。

image.png

这两个参数互为别名,说白了,你用哪个都是一样的。

那为什么一样的值要声明两个呢?

因为要配合其他组件使用,比如Ribbon,和其搭配使用时,就要取Feign的name值;其他组件有的又要去value值。

所以弄了两个值,也可以更灵活一些。

qualifier

说起这个参数,你一定知道另外一个注解:@Qualifier

@Qualifier的用处就是指定固定的Bean。

所以在FeignClient中的参数也差不多,标记当前修改的Bean名称。

可以让你在其他类中调用此Bean,当然了,这个默认值为空也是可以的,因为这个参数值和primary是有关系的。

我们下一篇文章中会说道primary参数。

示例如下:

@FeignClient(value = "demo1", contextId = "demo1-1", qualifier = "demo1Feign")
url

url,这个比较好理解,不再是服务名了。而是一个完整的链接。

此参数如果和value、name一并存在,只会根据url参数来执行调用。

url参数可以让Feign不再局限于服务间调用,而是也可以访问任何url,这里面可以是baidu、也可以是google。

示例如下:

@FeignClient(value = "demo1", contextId = "demo1-1", qualifier = "demo1Feign", url = "https://baidu.com")

小结

今天我们就FeignClient注解的name、url、qualified参数做出了解释和应用示例,大家学废了吗?

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