package com.wgcloud;
|
|
import org.apache.http.conn.ssl.NoopHostnameVerifier;
|
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.ssl.SSLContexts;
|
import org.apache.http.ssl.TrustStrategy;
|
import org.mybatis.spring.annotation.MapperScan;
|
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.web.servlet.ServletComponentScan;
|
import org.springframework.cache.annotation.EnableCaching;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.ComponentScan;
|
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
import org.springframework.scheduling.TaskScheduler;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
import org.springframework.web.client.RestTemplate;
|
|
import javax.net.ssl.SSLContext;
|
import java.security.KeyManagementException;
|
import java.security.KeyStoreException;
|
import java.security.NoSuchAlgorithmException;
|
|
@SpringBootApplication
|
@MapperScan("com.wgcloud.mapper")
|
@ServletComponentScan("com.wgcloud.filter")
|
@ComponentScan(basePackages = "com.wgcloud")
|
@EnableCaching
|
@EnableScheduling
|
public class WgcloudServiceApplication {
|
public static void main(String[] args) {
|
SpringApplication.run(WgcloudServiceApplication.class, args);
|
}
|
|
@Bean
|
public RestTemplate restTemplate() {
|
// SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
|
HttpComponentsClientHttpRequestFactory requestFactory = null;
|
try {
|
requestFactory = generateHttpRequestFactory();
|
} catch (NoSuchAlgorithmException e) {
|
e.printStackTrace();
|
} catch (KeyManagementException e) {
|
e.printStackTrace();
|
} catch (KeyStoreException e) {
|
e.printStackTrace();
|
}
|
//20s
|
requestFactory.setConnectTimeout(20 * 1000);
|
requestFactory.setReadTimeout(20 * 1000);
|
return new RestTemplate(requestFactory);
|
}
|
|
/**
|
* 忽略ssl证书
|
*
|
* @return
|
* @throws NoSuchAlgorithmException
|
* @throws KeyManagementException
|
* @throws KeyStoreException
|
*/
|
public static HttpComponentsClientHttpRequestFactory generateHttpRequestFactory()
|
throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException {
|
TrustStrategy acceptingTrustStrategy = (x509Certificates, authType) -> true;
|
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
|
SSLConnectionSocketFactory connectionSocketFactory = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());
|
|
HttpClientBuilder httpClientBuilder = HttpClients.custom();
|
httpClientBuilder.setSSLSocketFactory(connectionSocketFactory);
|
CloseableHttpClient httpClient = httpClientBuilder.build();
|
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
|
factory.setHttpClient(httpClient);
|
return factory;
|
}
|
|
@Bean
|
public TaskScheduler taskScheduler() {
|
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
|
taskScheduler.setPoolSize(50);
|
return taskScheduler;
|
}
|
|
}
|