|
@@ -1,21 +1,41 @@
|
|
|
package com.jeeplus.modules.centerservice.config;
|
|
|
|
|
|
+import org.apache.http.client.HttpClient;
|
|
|
+import org.apache.http.impl.client.HttpClients;
|
|
|
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.http.client.ClientHttpRequestFactory;
|
|
|
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
|
|
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
|
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
+import java.util.concurrent.ScheduledExecutorService;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
@Configuration
|
|
|
public class RestTemplateConfig {
|
|
|
|
|
|
@Bean
|
|
|
- public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
|
|
|
+ public RestTemplate restTemplate() {
|
|
|
+ // 配置连接池
|
|
|
+ PoolingHttpClientConnectionManager poolingConnManager = new PoolingHttpClientConnectionManager();
|
|
|
+ poolingConnManager.setMaxTotal(100); // 设置最大连接数
|
|
|
+ poolingConnManager.setDefaultMaxPerRoute(20); // 设置每个路由的最大连接数(即每个主机的最大连接数)
|
|
|
+
|
|
|
+ // 配置 HttpClient,使用连接池
|
|
|
+ HttpClient httpClient = HttpClients.custom()
|
|
|
+ .setConnectionManager(poolingConnManager)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ // 创建 HttpComponentsClientHttpRequestFactory,结合 HttpClient 和 RestTemplate
|
|
|
+ HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
|
|
|
+
|
|
|
RestTemplate restTemplate = new RestTemplate(factory);
|
|
|
restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter());
|
|
|
return restTemplate;
|