35.1 RestTemplate 사용자 정의

RestTemplate커스터마이제이션을 적용하려는 세 가지 방법에 따라 세 가지 주요 방법 이 있습니다.

가능한 모든 사용자 정의 범위를 좁히려면 자동 구성 RestTemplateBuilder을 삽입한 다음 필요에 따라 해당 메소드를 호출하십시오. 각 메소드 호출은 새 RestTemplateBuilder인스턴스를 리턴 하므로 사용자 정의는 빌더의 이 사용에만 영향을줍니다.

추가 응용 프로그램을 사용자 정의하려면 RestTemplateCustomizerbean을 사용하십시오 . 이러한 모든 bean은 자동 구성된 RestTemplateBuilder에 자동 등록 되며 기본으로 빌드 된 모든 템플리트에 적용됩니다.

다음 예는 192.168.0.5 제외한 모든 호스트에 대해 프록시 사용을 구성하는 사용자 정의 프로그램을 보여줍니다

static class ProxyCustomizer implements RestTemplateCustomizer {

	@Override
	public void customize(RestTemplate restTemplate) {
		HttpHost proxy = new HttpHost("proxy.example.com");
		HttpClient httpClient = HttpClientBuilder.create()
				.setRoutePlanner(new DefaultProxyRoutePlanner(proxy) {

					@Override
					public HttpHost determineProxy(HttpHost target,
							HttpRequest request, HttpContext context)
							throws HttpException {
						if (target.getHostName().equals("192.168.0.5")) {
							return null;
						}
						return super.determineProxy(target, request, context);
					}

				}).build();
		restTemplate.setRequestFactory(
				new HttpComponentsClientHttpRequestFactory(httpClient));
	}

}

마지막으로, 가장 극단적 인 (그리고 거의 사용되지 않는) 옵션은 자신의 RestTemplateBuilderbean 을 만드는 것이다 . 이렇게하면 RestTemplateBuilder의 자동 구성이 해제 되고 모든 RestTemplateCustomizerbean이 사용되지 않습니다.

Last updated