微服务Feign组件远程调用自定义解码器

Feign远程调用响应结果格式

java 复制代码
public class Result<T> {
    /**
     * 响应码,200为成功
     */
    private Integer code;

    /**
     * 响应信息
     */
    private String message;

    /**
     * 响应的具体对象
     */
    private T data;
}

自定义Feign解码器

java 复制代码
@Component // 注入Spring的IOC容器中,所有的Feign远程调用响应生效
public class FeignResultDecoder implements Decoder {

    @Override
    public Object decode(Response response, Type type) throws IOException, DecodeException, FeignException {
        if (response.body() == null) {
            throw new DecodeException(response.status(), "未返回正确的数据", response.request());
        }
        String bodyStr = Util.toString(response.body().asReader(Util.UTF_8));
        // TODO 进行转换(jackson提供json2obj方法实现Result转换)
        Result result = (Result) JsonUtil.json2obj(bodyStr, type);
        // TODO 最终响应结果为Result中的泛型对象
        return result.data;
    }

}
相关推荐
刀法如飞10 小时前
Spring Boot 4.1 + JDK 25 DDD开源脚手架,面向 AI 编程
设计模式·架构·ai编程
黒亱中旳10 小时前
面向桌面端的跌倒检测系统多线程并发架构优化实践
架构
折哥的程序人生 · 物流技术专研10 小时前
第8篇:模板方法模式的优缺点与面试高频考点
java·设计模式·面试·模板方法模式·行为型模式·优缺点·扩充系列
莫语陈10 小时前
端侧 Agent OS:手机架构与硬件协同设计
智能手机·架构
人道领域11 小时前
【0-1的agent进阶篇】Prompt 与上下文工程
java·开发语言·prompt·mcp
KINGSEA_16811 小时前
AgentScope Java 2.0 架构解析
java
武子康11 小时前
GPT-Live 全双工语音 Agent 深度拆解:连续交互 + 后台委托 + Voice Runtime 三层架构
人工智能·ai·chatgpt·架构·llm·交互
折哥的程序人生 · 物流技术专研11 小时前
Java 23 种设计模式:从踩坑到精通 | 备忘录模式 —— 快照与撤销,给对象装一个“后悔药”
java·设计模式·备忘录模式·行为型模式·java设计模式·从踩坑到精通·撤销重做
监督者修11 小时前
从零构建 GIS 数据引擎:方案驱动架构的设计与实践
android·架构·kotlin
Kel11 小时前
万物皆 Runnable:LangChain 如何用一个接口统一模型、链与图
人工智能·设计模式·架构