토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

스프링 부트 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.

목차


12.6. HTTP Clients

스프링 부트가 제공하는 스타터 중에는 HTTP 클라이언트와 함께 동작하는 스타터가 많다. 이번 섹션에선 HTTP 클라이언트를 사용할 때 궁금해하는 질문들에 답해본다.

12.6.1. Configure RestTemplate to Use a Proxy

RestTemplate 커스텀하기에서도 설명했지만, RestTemplateCustomizer를 이용해 RestTemplateBuilder를 사용하면 커스텀 로직을 적용한 RestTemplate을 빌드할 수 있다. 프록시 설정이 들어있는 RestTemplate을 생성할 때도 권장하는 방법이다.

정확한 프록시 설정은 사용 중인 기본 클라이언트 request 팩토리에 따라 다르다.

12.6.2. Configure the TcpClient used by a Reactor Netty-based WebClient

클래스패스에 Reactor Netty가 있을 때는 Reactor Netty 기반 WebClient를 자동 설정한다. 이 클라이언트의 네트워크 커넥션 처리 로직을 커스텀하려면 ClientHttpConnector 빈을 정의해라. 아래 예제에선 커넥션 타임아웃을 60초로 설정하고 ReadTimeoutHandler를 추가하고 있다:

@Configuration(proxyBeanMethods = false)
public class MyReactorNettyClientConfiguration {

    @Bean
    ClientHttpConnector clientHttpConnector(ReactorResourceFactory resourceFactory) {
        HttpClient httpClient = HttpClient.create(resourceFactory.getConnectionProvider())
                .runOn(resourceFactory.getLoopResources())
                .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 60000)
                .doOnConnected((connection) -> connection.addHandlerLast(new ReadTimeoutHandler(60)));
        return new ReactorClientHttpConnector(httpClient);
    }

}

커넥션 provider와 이벤트 루프 리소스에 ReactorResourceFactory를 사용한 걸 주목해라. 이렇게 하면 요청을 받는 서버와 요청을 전송하는 클라이언트에서 리소스를 효율적으로 공유할 수 있다.


전체 목차는 여기에 있습니다.

<< >>

TOP