springcloud feign返回Map解析处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springcloud feign返回Map解析处理相关的知识,希望对你有一定的参考价值。

参考技术A 继上回feign多参数处理的坑刚解决完,又出现了新的问题

springcloud feign多参数调用解析处理方法

源码地址: https://gitee.com/ttx_urey/feign-multiple-param

feign返回为Map时,底层解析Map的key或value为对象时,自动把对象解析为Map,导致调用的时候类型不匹配,那没办法,只能继续解决

解决思路:指定返回对象为Map时,调用自己的解析器来处理

先新增一个自己的解析器:

只用管



这两个方法,因为使用ObjectMapper解析Map时,我们需要知道Map的Key和Value的类型,前面两个没有Type参数的同名方法管不了

接下来,直接创建Bean,Spring会自动注入解析器列表里面

还有一个问题,就是如果不在feign的生产者的pom文件中把jackson-dataformat-xml的jar包去掉的话,feign默认返回的格式是xml,就不能用ObjectMapper了(虽然可以用XmlMapper,但是我不喜欢XML),所以需要去掉jar包

以防万一,在commom模块中再把feign-jackson的jar包加上

在浏览器打开 http://127.0.0.1:8100/test2
后台日志中可以看到

以上是关于springcloud feign返回Map解析处理的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud系列之Feign-6.Feign上下文构建解析

SpringCloud技术专题「Feign」从源码层面让你认识Feign工作流程和运作机制

Feign 系列(05)Spring Cloud OpenFeign 源码解析

SpringCloud系列之Feign-5.@EnableFeignClients底层机制深度解析

SpringCloud学习之feign

SpringCloud之Feign:REST客户端