类org.springframework.boot.web.client.RestTemplateCustomizer源码实例Demo

下面列出了怎么用org.springframework.boot.web.client.RestTemplateCustomizer的API类实例代码及写法,或者点击链接到github查看源代码。

@Bean
@Lazy
@ConditionalOnMissingBean
public RestTemplateBuilder restTemplateBuilder(ObjectProvider<HttpMessageConverters> messageConverters,
                                               ObjectProvider<RestTemplateCustomizer> restTemplateCustomizers,
                                               ObjectProvider<RestTemplateRequestCustomizer<?>> restTemplateRequestCustomizers,
                                               OkHttpClient okHttpClient) {
    RestTemplateBuilder builder = new RestTemplateBuilder();
    HttpMessageConverters converters = messageConverters.getIfUnique();
    if (converters != null) {
        builder = builder.messageConverters(converters.getConverters());
    }
    builder = addCustomizers(builder, restTemplateCustomizers, RestTemplateBuilder::customizers);
    builder = addCustomizers(builder, restTemplateRequestCustomizers, RestTemplateBuilder::requestCustomizers);

    builder = builder.requestFactory(() -> new OkHttp3ClientHttpRequestFactory(okHttpClient));

    return builder;
}
 
@Bean
@Order(SOME_NOT_LOWEST_PRECEDENCE)
@Profile("bug")
public RestTemplateCustomizer someOrderedInterceptorCustomizer() {
	return new RestTemplateCustomizer() {
		@Override
		public void customize(RestTemplate restTemplate) {
			ClientHttpRequestInterceptor emptyInterceptor = new ClientHttpRequestInterceptor() {
				@Override
				public ClientHttpResponse intercept(HttpRequest request, byte[] body,
						ClientHttpRequestExecution execution) throws IOException {
					return execution.execute(request, body);
				}
			};
			restTemplate.getInterceptors().add(emptyInterceptor);
		}
	};
}
 
@Bean
public RestTemplateCustomizer someNotOrderedInterceptorCustomizer() {
	return new RestTemplateCustomizer() {
		@Override
		public void customize(RestTemplate restTemplate) {
			ClientHttpRequestInterceptor emptyInterceptor = new ClientHttpRequestInterceptor() {
				@Override
				public ClientHttpResponse intercept(HttpRequest request, byte[] body,
						ClientHttpRequestExecution execution) throws IOException {
					return execution.execute(request, body);
				}
			};
			restTemplate.getInterceptors().add(emptyInterceptor);
		}
	};
}
 
@Bean
@Order
public RestTemplateCustomizer someLowestPrecedenceOrderedInterceptorCustomizer() {
	return new RestTemplateCustomizer() {
		@Override
		public void customize(RestTemplate restTemplate) {
			ClientHttpRequestInterceptor emptyInterceptor = new ClientHttpRequestInterceptor() {
				@Override
				public ClientHttpResponse intercept(HttpRequest request, byte[] body,
						ClientHttpRequestExecution execution) throws IOException {
					return execution.execute(request, body);
				}
			};
			restTemplate.getInterceptors().add(emptyInterceptor);
		}
	};
}
 
@Bean
@Lazy
@ConditionalOnMissingBean
public RestTemplateBuilder restTemplateBuilder(ObjectProvider<HttpMessageConverters> messageConverters,
                                               ObjectProvider<RestTemplateCustomizer> restTemplateCustomizers,
                                               ObjectProvider<RestTemplateRequestCustomizer<?>> restTemplateRequestCustomizers,
                                               OkHttpClient okHttpClient) {
    RestTemplateBuilder builder = new RestTemplateBuilder();
    HttpMessageConverters converters = messageConverters.getIfUnique();
    if (converters != null) {
        builder = builder.messageConverters(converters.getConverters());
    }
    builder = addCustomizers(builder, restTemplateCustomizers, RestTemplateBuilder::customizers);
    builder = addCustomizers(builder, restTemplateRequestCustomizers, RestTemplateBuilder::requestCustomizers);

    builder = builder.requestFactory(() -> new OkHttp3ClientHttpRequestFactory(okHttpClient));

    return builder;
}
 
源代码6 项目: java-tutorial   文件: TracingConfiguration.java
@Bean RestTemplateCustomizer useTracedHttpClient(HttpTracing httpTracing) {
  final CloseableHttpClient httpClient = TracingHttpClientBuilder.create(httpTracing).build();
  return new RestTemplateCustomizer() {
    @Override public void customize(RestTemplate restTemplate) {
      restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
    }
  };
}
 
@Bean
@ConditionalOnClass(SSLContextBuilder.class)
@ConditionalOnProperty(value = "wiremock.rest-template-ssl-enabled",
		matchIfMissing = true)
public RestTemplateCustomizer wiremockRestTemplateCustomizer() {
	return new RestTemplateCustomizer() {
		@Override
		public void customize(RestTemplate restTemplate) {
			if (restTemplate
					.getRequestFactory() instanceof HttpComponentsClientHttpRequestFactory) {
				HttpComponentsClientHttpRequestFactory factory = (HttpComponentsClientHttpRequestFactory) restTemplate
						.getRequestFactory();
				factory.setHttpClient(createSslHttpClient());
			}
		}

		private HttpClient createSslHttpClient() {
			try {
				SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(
						new SSLContextBuilder().loadTrustMaterial(null,
								TrustSelfSignedStrategy.INSTANCE).build(),
						NoopHostnameVerifier.INSTANCE);
				return HttpClients.custom().setSSLSocketFactory(socketFactory)
						.build();
			}
			catch (Exception ex) {
				throw new IllegalStateException("Unable to create SSL HttpClient",
						ex);
			}
		}
	};
}
 
@Bean
RestTemplateCustomizer myRestTemplateCustomizer() {
	return restTemplate -> {
		restTemplate.getInterceptors().add(0,
				new MySecondClientHttpRequestInterceptor());
	};
}
 
@Bean RestTemplateCustomizer useTracedHttpClient(HttpTracing httpTracing) {
  final CloseableHttpClient httpClient = TracingHttpClientBuilder.create(httpTracing).build();
  return new RestTemplateCustomizer() {
    @Override public void customize(RestTemplate restTemplate) {
      restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
    }
  };
}
 
源代码10 项目: txle   文件: TracingConfiguration.java
@Bean
RestTemplateCustomizer useTracedHttpClient(HttpTracing httpTracing) {
    final CloseableHttpClient httpClient = TracingHttpClientBuilder.create(httpTracing).build();
    return restTemplate -> restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
}
 
源代码11 项目: txle   文件: TracingConfiguration.java
@Bean
RestTemplateCustomizer useTracedHttpClient(HttpTracing httpTracing) {
    final CloseableHttpClient httpClient = TracingHttpClientBuilder.create(httpTracing).build();
    return restTemplate -> restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
}
 
@Bean
@Order
RestTemplateCustomizer traceRestTemplateCustomizer() {
	return new TraceRestTemplateCustomizer(
			new LazyTracingClientHttpRequestInterceptor(this.beanFactory));
}
 
源代码13 项目: spring-cloud-sleuth   文件: WebClientTests.java
@Bean
RestTemplateCustomizer myRestTemplateCustomizer() {
	return new MyRestTemplateCustomizer();
}
 
@Bean
RestTemplateBuilder myRestTemplateBuilder(
		List<RestTemplateCustomizer> customizers) {
	return new RestTemplateBuilder().additionalCustomizers(customizers)
			.additionalInterceptors(new MyClientHttpRequestInterceptor());
}
 
@Bean
RestTemplateCustomizer testRestTemplateCustomizer() {
	return (b) -> b.setErrorHandler(errorHandler);
}
 
@Bean
RestTemplateCustomizer mockMvcCustomizer(BeanFactory beanFactory) {
	return (template) -> template.setRequestFactory(beanFactory.getBean(MockMvcClientHttpRequestFactory.class));
}
 
 类所在包
 同包方法