【发布时间】:2024-01-06 22:06:02
【问题描述】:
这是我的 Rest 模板配置,
@Bean
@Qualifier("myRestService")
public RestTemplate createRestTemplate(@Value("${connection.timeout}") String maxConn) {
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(maxTotalConn);
connectionManager.setDefaultMaxPerRoute(maxPerChannel);
RequestConfig config = RequestConfig.custom().setConnectTimeout(100000).build();
CloseableHttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager)
.setDefaultRequestConfig(config).build();
ClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(factory);
restTemplate.setErrorHandler(new RestResponseErrorHandler());
restTemplate.setMessageConverters(createMessageConverters());
return restTemplate;
}
我正在使用 PoolingHttpClientConnectionManager 来管理连接。
它被下面的代码访问,
ResponseEntity<String> response = restClient.exchange( url, HttpMethod.GET, entity , String.class );
我需要在上述调用后释放连接还是由 RestTemplate 处理。如果我们需要处理释放连接。
请有人解释/展示如何释放连接。
【问题讨论】:
标签: spring httpclient resttemplate