миграция SpringBoot2 на Springboot 3 с restClient на webClient
на самом деле я мигрирую с Springboot 2 на 3, и я борюсь с настройкой httpClient Spring WebClient, и мой вопрос:
какой http-клиент использовать? java 17 net.httpClient, Netty Reactor, или можем ли мы оставить HTTP-клиент Apache. Мне нужно сохранить ssl, механизм кэширования и пул, но в netty у нас нет всех этих функций, вот фрагмент кода моей конфигурации с Springboot 2:
return new RestTemplateBuilder()
.requestFactory(() -> {
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(100)
.build();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000, TimeUnit.MILLISECONDS)
.setSocketTimeout(5000,TimeUnit.MILLISECONDS)
.build();
HttpClientBuilder httpClientBuilder = CachingHttpClients.custom()
.setCacheConfig(cacheConfig)
.setDefaultRequestConfig(requestConfig);
SslStore truststore = backendProperties.getTruststore();
SslStore keystore = backendProperties.getKeystore();
if (truststore != null && truststore.getPath() != null && keystore != null && keystore.getPath() != null) {
LayeredConnectionSocketFactory sslSocketFactory = SslUtils.readSSLSocketFactory(truststore.getPath(), truststore.getPassword(), keystore.getPath(), keystore.getPassword());
if (sslSocketFactory != null) {
httpClientBuilder.setSSLSocketFactory(sslSocketFactory);
}
}
HttpClient client = httpClientBuilder.build();
return new HttpComponentsClientHttpRequestFactory(client);
})
.build();
Спасибо