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.E