2

给定以下代码示例

-- 客户端库代码

@FeignClient("string-service")
public interface StringClient {

     @RequestMapping(method = RequestMethod.GET, value = "/microservicestring")
      public String home();
}


@Service
public class StringHystrixClient {

    private final SpringClient springClient;
//....

}

-- 服务库代码

@RestController
public class StringController implements StringClient {
    public String home(){
         return "World";
    }
}


@SpringBootApplication
@EnableHystrix
@EnableEurekaClient
@EnableFeignClients
public class StringApplication { ....}

如果服务库引用了客户端库,那么在应用启动时,通过组件扫描我们会到达一个状态,从StringHystrixClient填充依赖,spring容器不知道怎么办,因为有两个bean实现了StringClient。

避免这种情况的一种解决方案是不在 StringController 中实现 StringClient,但是接口和其余控制器的代码重复很容易出错。有人可以为这个问题指出一个更优雅的解决方案吗?

4

0 回答 0