关于SpringCloud Feign的一些小知识点

1 篇文章 0 订阅
1 篇文章 0 订阅

       我有个舍友说Feign有坑,但是我想来想去,也没想到Feign有什么坑,可能他说的是@RP和@PV和get请求这些吧,我看网上有很多人都认为这是坑,但是我并不认为这些是坑啊,所以现在解释下我的看法。

       @RP和@PV我感觉可以算是人家的规定,人家就是不支持你不写,就是要求你写,这是人家的规定,应该不能算坑吧,只能说使用起来很麻烦,但是新手用的话,确实会卡一下。举个栗子:就好比一个刚学java的新手,没给字符串赋值就调用toString方法,结果报空指针异常了,你不能因为java报空指针异常而说java坑啊,人家就是这么规定的,因为人家的东西麻烦了点儿就说人家坑,我感觉不太合理。

       还有一个是feign的get请求。网上很多人一知半解就在那解答。Http1.1协议只是不建议在get请求中添加请求体,并没有禁止,什么意思呢?也就是说,如果你使用的服务严格遵守官方规定,连建议都当金科玉律听了,那么OK啊,get请求就是没有请求体。但是如果我只是遵守他官方的规定,对于官方的建议,我没有遵守会是什么样呢?比如Elasticsearch。Elasticsearch的get请求就支持将请求参数放在请求体里,你能说Elasticsearch是个垃圾的设计?回到Feign,为什么用GET请求发送一个对象会失败?因为Feign默认使用的是Java的URLConnection(HttpURLConnection),这个是不支持get请求中添加请求体的(会自动转换为POST请求),所以会失败,怎么办呢?使用OKHttp?也不行,它也不支持,那使用什么?肯定是使用ApacheHTTPClient啊。Apache的HTTPClient支持在get请求中添加请求体的,所以只要加入ApacheHttpClient的依赖就可以在Feign中使用GET请求了。所以,我也不认为是坑,再说了,不是还有Map吗?而且Map还通用。再不行就每个参数挨个写,再不行就用POST请求。但是你不能因为你不知道就说人家这是坑。

       今天是2018-08-20,自己回头看这篇blog的时候,觉得也挺可笑的,写这篇blog的时候应该挺郁闷的,但是到底是什么事我记不起来了,最起码现在是没什么印象了,所以这个事告诉我们,有不开心的事不要太较真,打打哈哈就过去了,毕竟什么事都会过去,但是你曾经增长的戾气却会随着你一起成长。

       其实我现在很想删除这篇blog中的一些内容,因为有些内容看起来好像我在diss舍友。但是反过来想想,如果我删了,那不就是在掩饰自己吗?好也好,不好也罢,那都是我,或者说是曾经的我,我不能因为现在比以前好了(不要脸一点的说法就是比以前优秀了),就否定曾经的我。(其实我还是删了一些东西,但是删的并不是一些不好的东西,而是一些嘻嘻哈哈的废话)

       接下来的你,永远是最好的你!一起加油。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青草绿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值