2017-02-27 124 views
0

我在我的Spring启动应用程序中定义了一个类型为CloseableHttpClient的bean。但是我仍然得到这个bean无法找到的错误。在com.MyConfiguration方法restTemplate的Spring Boot Rest模板 - CloseableHttpClient

@Bean 
@Primary 
public RestTemplate restTemplate(RestTemplateBuilder builder, @Qualifier("pooledClient") CloseableHttpClient httpClient) { 
    return builder.requestFactory(new HttpComponentsClientHttpRequestFactory(httpClient)).build(); 
} 

@Bean 
public CloseableHttpClient httpClient() { 
    return HttpClientBuilder.create().build(); 
} 

参数1所要求类型的豆“org.apache.http.impl.client.CloseableHttpClient”不能被发现。

操作:

考虑您的配置定义类型的豆 'org.apache.http.impl.client.CloseableHttpClient'。

回答

2

您对CloseableHttpClient使用@Qualifier,但在您的配置中,您尚未定义任何与该限定符匹配的bean。要么你声明一个名为豆pooledClient:

@Bean(name="pooledClient") 
public CloseableHttpClient httpClient() { 
    return HttpClientBuilder.create().build(); 
} 

或者你删除@Qualifier注解:

@Bean 
@Primary 
public RestTemplate restTemplate(RestTemplateBuilder builder, CloseableHttpClient httpClient) { 
    return builder.requestFactory(new HttpComponentsClientHttpRequestFactory(httpClient)).build(); 
}