从配置文件中读取参数

This commit is contained in:
li5454yong 2017-02-06 20:50:06 +08:00
parent 0939002d87
commit 84011c846b
3 changed files with 37 additions and 7 deletions

View File

@ -5,25 +5,39 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
/** /**
* Created by admin on 2017/2/6. * Created by admin on 2017/2/6.
*/ */
@Configuration @Configuration
public class HttpClient { public class HttpClient {
@Value("${http.maxTotal}")
private Integer maxTotal;
@Value("${http.defaultMaxPerRoute}")
private Integer defaultMaxPerRoute;
@Value("${http.connectTimeout}")
private Integer connectTimeout;
@Value("${http.connectionRequestTimeout}")
private Integer connectionRequestTimeout;
@Value("${http.socketTimeout}")
private Integer socketTimeout;
@Value("${http.staleConnectionCheckEnabled}")
private boolean staleConnectionCheckEnabled;
@Bean(name = "httpClientConnectionManager") @Bean(name = "httpClientConnectionManager")
public PoolingHttpClientConnectionManager demo(){ public PoolingHttpClientConnectionManager demo(){
PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager(); PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager();
httpClientConnectionManager.setMaxTotal(100); httpClientConnectionManager.setMaxTotal(maxTotal);
httpClientConnectionManager.setDefaultMaxPerRoute(20); httpClientConnectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute);
return httpClientConnectionManager; return httpClientConnectionManager;
} }
@ -46,7 +60,10 @@ public class HttpClient {
@Bean(name = "builder") @Bean(name = "builder")
public RequestConfig.Builder demo4(){ public RequestConfig.Builder demo4(){
RequestConfig.Builder builder = RequestConfig.custom(); RequestConfig.Builder builder = RequestConfig.custom();
return builder.setConnectTimeout(1000).setSocketTimeout(10000).setStaleConnectionCheckEnabled(true); return builder.setConnectTimeout(connectTimeout)
.setConnectionRequestTimeout(connectionRequestTimeout)
.setSocketTimeout(socketTimeout)
.setStaleConnectionCheckEnabled(staleConnectionCheckEnabled);
} }
@Bean @Bean

View File

@ -15,10 +15,11 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.message.BasicNameValuePair; import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Component
public class HttpAPIService { public class HttpAPIService {
@Autowired @Autowired

View File

@ -0,0 +1,12 @@
#最大连接数
http.maxTotal = 100
#并发数
http.defaultMaxPerRoute = 20
#创建连接的最长时间
http.connectTimeout=1000
#从连接池中获取到连接的最长时间
http.connectionRequestTimeout=500
#数据传输的最长时间
http.socketTimeout=10000
#提交请求前测试连接是否可用
http.staleConnectionCheckEnabled=true