FeginClient命名重复导致扫描被覆盖的问题

主要是FeginClient命名重复导致扫描被覆盖的问题,当springboot配置文件中有以下配置时,会允许bean配置覆盖

spring: 
  main:
    allow-bean-definition-overriding: true

再举个例子:
ACL服务中,最早期为了节约部署成本,将ACL服务/DIC服务/oss服务混写到了一起,导致以下配置中的name最终是一样的。

@FeignClient(name ="${custom.service.dic}", fallback= DICAppApiHystrix.class, configuration= DICApiConfiguration.class)

而如果没有上述覆盖的配置,则启动时会报错。最后选择了覆盖配置的方式进行的启动,带来的代价是:同一个服务发布feginclient时,为了避免configuration覆盖,要写在同一个文件中。

结论:
1、后续找时间把服务完全拆开,保持服务职责单一
2、将allow-bean-definition-overriding配置改回默认设置
3、feginClient配置覆盖调试路径:org.springframework.cloud.openfeign.FeignAutoConfiguration#configurations

你可能感兴趣的:(Spring,Boot,Spring,Cloud,spring,java,spring,boot)