疯狂的狮子li
2021-07-04 2704e921c80baf212e74ddbf75a87c47e8a2679e
update 增加 feign 熔断 自定义结构体解析方法 与 demo 注释
已修改2个文件
39 ■■■■■ 文件已修改
ruoyi-demo/src/main/java/com/ruoyi/demo/feign/fallback/FeignTestFallback.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-demo/src/main/java/com/ruoyi/demo/feign/fallback/FeignTestFallback.java
@@ -7,7 +7,10 @@
/**
 * feign测试fallback
 * 自定义封装结构体熔断
 * 需重写解码器 根据自定义实体 自行解析熔断
 *
 * @see {com.ruoyi.framework.config.FeignConfig#errorDecoder()}
 * @author Lion Li
 */
@Slf4j
ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java
@@ -54,4 +54,40 @@
        return new Retryer.Default();
    }
//    /**
//     * 自定义异常解码器
//     * 用于自定义返回体异常熔断
//     */
//    @Bean
//    public ErrorDecoder errorDecoder() {
//        return new CustomErrorDecoder();
//    }
//
//
//    /**
//     * 自定义返回体解码器
//     */
//    @Slf4j
//    public static class CustomErrorDecoder implements ErrorDecoder {
//
//        @Override
//        public Exception decode(String methodKey, Response response) {
//            Exception exception = null;
//            try {
//                // 获取原始的返回内容
//                String json = JsonUtils.toJsonString(response.body().asReader(StandardCharsets.UTF_8));
//                exception = new RuntimeException(json);
//                // 将返回内容反序列化为Result,这里应根据自身项目作修改
//                AjaxResult result = JsonUtils.parseObject(json, AjaxResult.class);
//                // 业务异常抛出简单的 RuntimeException,保留原来错误信息
//                if (result.getCode() != 200) {
//                    exception = new RuntimeException(result.getMsg());
//                }
//            } catch (IOException e) {
//                log.error(e.getMessage(), e);
//            }
//            return exception;
//        }
//    }
}