SpringCloud : 多个 @FeignClient 注解 value 设置为同一个应用的解决方案

在微服务架构使用SpringCloud Feign时,遇到同一服务声明多个@FeignClient实例导致的启动错误。解决方案包括通过Feign.builder()手动创建代理类或者在配置中设置#allow-bean-definition-overriding: true允许bean同名覆盖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Feign 版本10.1.0

Spring 版本 5.1.5.RELEASE

SpringBoot 版本 2.1.5.RELEASE

SpringCloud 版本 2.1.1.RELEASE

在微服务架构中,当我们需要进行服务间调用时可以选择feign组件,

现在遇到的问题是: 当同一个服务,声明多个feign实例时,启动时直接报错。

解决办法,通过 Feign.builder() 手动生成代理类。 另一种见评论区:#允许bean实例同名覆盖 allow-bean-definition-overriding: true

1.定义接口:

public interface AbcClient{
   
   
    @ResponseBody
    @PostMapping("/abc")
    JSONObject doSomething(@RequestBody Req request);
}

public interface DefClient{
   
   
    @ResponseBody
    @PostMapping("/def")
    JSONObject doSomething(@RequestBody Req request);
}

2.配置接口代理

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import com.alibaba.fastjson.support.springfox.SwaggerJsonSerializer;
import com.netflix.appinfo.InstanceInfo;
import com.netflix.discovery.EurekaClient;
import com.yunplus.bpg.cloud.file.proxy.client.QcloudClient;
import com.yunplus.bpg.cloud.file.proxy.client.TaskClient;
import feign.Contract;
import feign.Feign;
import feign.codec.Decoder;
import feign.codec.Encoder;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值