找不到类型为“ com.netflix.client.config.IClientConfig”的Bean

时间:2018-10-29 20:24:10

标签: spring-boot spring-cloud netflix-eureka netflix-ribbon

我的功能区应用程序遇到问题。这是我的代码:

@SpringBootApplication
@EnableDiscoveryClient
@RestController
@RibbonClient(name= "bye", configuration=RibbonConfig.class )
public class RibbonAppApplication {
    @Autowired
    private RestTemplate restTemplate;
    public static void main(String[] args) {
        SpringApplication.run(RibbonAppApplication.class, args);
    }
    @GetMapping
    public String getService() {
        return restTemplate.getForObject("http://bye",String.class);
    }
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

还有我的RibbonConfig.class

@Configuration
public class RibbonConfig {

    @Bean
    public IPing ribbonPing(IClientConfig config) {
        return new PingUrl(false,"/health");
    }

    @Bean
    public IRule ribbonRule(IClientConfig config) {
        return new AvailabilityFilteringRule();
    }
}

但是,出现以下错误:

  

在实践中,ribbonPing方法的参数0.zuul.zach.ribbonapp.RibbonConfig需要一个类型为'com.netflix.client.config.IClientConfig'的bean。

     

操作:   考虑在您的配置中定义类型为“ com.netflix.client.config.IClientConfig”的bean。

有什么办法可以解决?

1 个答案:

答案 0 :(得分:0)

当我在RibbonAppApplication类中添加此行时,问题解决了

@SpringBootApplication(scanBasePackages={"com.netflix.client.config.IClientConfig"})