玩转@FeignClient的Decoder

     公司有个需求,就是可以实现如下调用

     

 这两个方法 最大的区别就是返回值,一个是包装类,一个是非包装类。

  我翻了一会源码,觉得用Decoder解决比较好。

  开启懒人模式,有别人写好的我拿来改一下就行,没有我就自己撸呗。

  找到了一个,他大概是这样写的

 

本来他这个和我的业务也不太一样,我一看这直接去读原始的响应,然后开始Decoder,我觉得这个路子有点野。

       于是先翻一下源码,源码默认的decoder

    

仔细读了一下,如果直接拿出响应自己来反序列化,路子有点野,而且有很多情况没有考虑到。

换个思路玩吧,我自己改写Type不就好了。

所以就是想当于把type包装一下。这里有个让我还想了一会儿的一个点。一般情况下我们知道

ParameterizedType,Class,TypeVariable,WildcardType我们都是直接做反射的时候获取的(这块扩展起来可以有多值得玩的地方,特别是要真正玩转反射的时候(很多时候写中间件是需要掌握的深一些的))。这个我要构建一个还真不知道如何构建。后来翻了一下,这不自己糊涂么,实现这个接口就可以了。

至于我说网上解法路子野还有一个原因,仔细读一下默认的解法你会发现有三种情况,这也是上面我为何要排队 

HttpEntity.class

 

这下自己解决的感觉还挺满意,至少没破坏以前的解码流程。

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值