Я новичок в Spring, я получаю исключение «Отсутствие квалификационного компонента типа [int], найденного для зависимости: ожидается по крайней мере 1 компонент, который квалифицируется как кандидат на автоподключение для этой зависимости. Аннотации зависимостей: { }». Когда я попробую подход ниже.Autowire bean from @Configuration
Это конфигурация для RestTemplate
@Configuration
public class RestClientConfig {
@Bean
public ObjectMapper getObjMapper(){
return new ObjectMapper();
}
@Bean
public RestTemplate createRestTemplate(int maxTotalConn, int maxPerChannel, int connTimout) {
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(maxTotalConn);
connectionManager.setDefaultMaxPerRoute(maxPerChannel);
RequestConfig config = RequestConfig.custom().setConnectTimeout(connTimout).build();
CloseableHttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager)
.setDefaultRequestConfig(config).build();
ClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(factory);
restTemplate.setErrorHandler(new RestResponseErrorHandler());
restTemplate.setMessageConverters(createMessageConverters());
return restTemplate;
}
private List<HttpMessageConverter<?>> createMessageConverters() {
List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
MappingJackson2HttpMessageConverter jsonMessageConverter = new MappingJackson2HttpMessageConverter();
jsonMessageConverter.setObjectMapper(getObjMapper());
messageConverters.add(jsonMessageConverter);
return messageConverters;
}
}
При попытке доступа, как это, она вызывает исключение упомянутого выше.
@Autowired
private RestClientConfig restTemplate;
ResponseEntity<String> response2 = restTemplate.createRestTemplate(100, 100, 100).exchange(url, HttpMethod.GET, entity , String.class);
Пожалуйста, помогите и укажите мне правильный подход и что я делаю что-то неправильно?
, пожалуйста, вы можете сообщить мне, как я могу вызвать и передать Аргументы для createRestTemplate (int maxTotalConn, int maxPerChannel, int connTimout) – Umar
@Umar проверить мой пост, как я сделал рекомендацию. Надеюсь, поможет! – Mechkov
Я пытался использовать этот метод createRestTemplate для нескольких сервисов, поэтому каждая служба может передавать свою собственную конфигурацию max Connection, timeout. Можно ли так добиться? – Umar