You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Cloud Feign Client decode404配置跨客户端异常持久化问题

问题与分析:Feign Client decode404属性污染问题

问题场景

  • 基于Spring Boot构建的多Feign Client应用,所有客户端均通过@FeignClient注解配置
  • 采用Hystrix作为容错组件,已在Spring上下文定义Feign.Builder类型Bean,实例为HystrixFeign.builder()
  • 当其中一个Feign Client显式设置decode404=true(新版Feign中该属性更名为dismiss404)后,后续初始化的其他默认decode404=false的Feign Client,该属性也被自动设置为true

根因

Spring上下文中的Feign.Builder实例是共享的,在配置第一个开启decode404的客户端时,Builder的属性被修改但未重置,后续客户端复用了这个被污染的Builder实例,导致属性被意外继承

复现版本

  • Spring Cloud Open Feign 3.1.3(依赖OpenFeign 11.8)
  • Spring Cloud Open Feign 2.2.1.RELEASE(依赖OpenFeign 10.4)
  • 新版Feign中属性名改为dismiss404,但Builder实例复用导致的属性污染逻辑未发生变化

临时方案(不符合预期)

目前仅能通过手动在每个Feign Client配置前重置Feign.Builder的对应属性来规避,但该方案需要侵入配置逻辑,不符合Spring自动配置的预期设计

内容的提问来源于stack exchange,提问作者A. Adiego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 04:10:02