package com.stylefeng.guns;
|
|
import com.stylefeng.guns.modular.system.util.GDFalconUtil;
|
import org.apache.http.client.HttpClient;
|
import org.apache.http.config.SocketConfig;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
|
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
import org.springframework.http.converter.StringHttpMessageConverter;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.web.client.RestTemplate;
|
|
import java.nio.charset.StandardCharsets;
|
|
/**
|
* SpringBoot方式启动类
|
*
|
* @author stylefeng
|
* @Date 2017/5/21 12:06
|
*/
|
@EnableEurekaClient//注册为服务提供者
|
@SpringBootApplication
|
@EnableScheduling//开启定时任务
|
@EnableTransactionManagement//启动事务功能
|
public class GunsApplication {
|
|
private final static Logger logger = LoggerFactory.getLogger(GunsApplication.class);
|
|
public static void main(String[] args) {
|
SpringApplication.run(GunsApplication.class, args);
|
logger.info("GunsApplication is success!");
|
|
// GDFalconUtil gdFalconUtil = new GDFalconUtil();
|
// gdFalconUtil.init();//初始化猎鹰服务
|
}
|
|
|
@Bean //SpringCloud内部服务质检使用服务名调用
|
@LoadBalanced
|
public RestTemplate internalRestTemplate() {
|
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
|
connectionManager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build());
|
connectionManager.setDefaultMaxPerRoute(100);//最大并发连接
|
connectionManager.setMaxTotal(200); // 总的最大连接数
|
HttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
|
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
|
httpRequestFactory.setConnectionRequestTimeout(30 * 1000);
|
httpRequestFactory.setConnectTimeout(30 * 3000);
|
httpRequestFactory.setReadTimeout(30 * 3000);
|
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
|
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
return restTemplate;
|
}
|
|
|
|
/**
|
* 向Spring容器中定义RestTemplate对象
|
* @return
|
*/
|
@Bean //必须new 一个RestTemplate并放入spring容器当中,否则启动时报错
|
public RestTemplate restTemplate() {
|
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
|
connectionManager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build());
|
connectionManager.setDefaultMaxPerRoute(100);//最大并发连接
|
connectionManager.setMaxTotal(200); // 总的最大连接数
|
HttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
|
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
|
httpRequestFactory.setConnectionRequestTimeout(30 * 1000);
|
httpRequestFactory.setConnectTimeout(30 * 3000);
|
httpRequestFactory.setReadTimeout(30 * 3000);
|
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
|
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
return restTemplate;
|
}
|
|
|
}
|