Spring 프레임워크 6에서는 다음에 대한 지원이 제공됩니다 Apache HttpClient 4.x 에서 제거되었습니다 HttpComponentsClientHttpRequestFactory. 이 팩토리에 의존하는 구성 요소는 다음과 같습니다 RestTemplate 는 이제 Apache HttpClient 5.x를 사용하는 org.apache.hc.* 발견됩니다.
모든 사용 HttpClient 4.x 다음과 같은 클래스 CloseableHttpClient, HttpClient, RequestConfig또는 HttpContext 에서 org.apache.http.* 패키지( Spring 의 HTTP 클라이언트 인프라(생성자, 메서드 호출, 또는 HttpComponentsClientHttpRequestFactory)를 사용하려면 컴파일 오류가 발생할 수 있으므로 업데이트해야 합니다 HttpClient 5.x 등가물.
다음 메서드와 생성자를 검토하십시오 HttpComponentsClientHttpRequestFactory HttpClient 4.x API를 참조하지 않도록 합니다:
HttpComponentsClientHttpRequestFactory(HttpClient)setHttpClient(HttpClient)getHttpClient()mergeRequestConfig(RequestConfig)postProcessHttpRequest(HttpUriRequest)createHttpUriRequest(HttpMethod, URI)createHttpContext(HttpMethod, URI)createRequestConfig(Object)setHttpContextFactory(BiFunction)다음 예는 플래그를 지정할 수 있는 잘못된 사용법을 보여줍니다:
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class InvalidHttp4ClientUsage {
public void example() {
CloseableHttpClient client = HttpClients.custom().build();
RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory(client));
}
}
다음 예는 마이그레이션된 유효한 사용법을 보여줍니다:
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class ValidHttpClientUsage {
public void example() {
CloseableHttpClient client = HttpClients.custom().build();
RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory(client));
}
}
자세한 정보는 다음 자원을 참조하십시오.