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 源码解析