<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">web
<!-- 声明一个httpclient的链接池管理器 -->
<bean id="clientConnectionManager"
class="org.apache.http.impl.conn.PoolingHttpClientConnectionManager">
<!-- 设置最大链接数 -->
<property name="maxTotal" value="${httpclient.maxTotal}" />
<!-- 设置每一个主机地址的并发数 -->
<property name="defaultMaxPerRoute" value="${httpclient.defaultMaxPerRoute}" />
</bean>spring
<!-- 建立clientBuilder,用来建立httpclient -->
<bean id="clientBuilder" class="org.apache.http.impl.client.HttpClientBuilder">
<!-- 设置链接池管理器 -->
<property name="connectionManager" ref="clientConnectionManager" />
</bean>apache
<!-- 声明httpclient -->
<!-- httpclient必须是多例的 -->
<bean id="httpClient" class="org.apache.http.impl.client.CloseableHttpClient"
factory-bean="clientBuilder" factory-method="build" scope="prototype" />spring-mvc
<!-- 声明Builder -->
<bean id="builder" class="org.apache.http.client.config.RequestConfig.Builder">
<!-- 建立链接的最长时间 -->
<property name="connectTimeout" value="${httpclient.connectTimeout}" />
<!-- 从链接池中获取到链接的最长时间 -->
<property name="connectionRequestTimeout" value="${httpclient.connectionRequestTimeout}" />
<!-- 数据传输的最长时间 -->
<property name="socketTimeout" value="${httpclient.socketTimeout}" />
<!-- 提交请求前测试链接是否可用 -->
<property name="staleConnectionCheckEnabled" value="${httpclient.staleConnectionCheckEnabled}" />
</bean>并发
<!-- 构建请求配置信息 -->
<bean id="requestConfig" class="org.apache.http.client.config.RequestConfig"
factory-bean="builder" factory-method="build" />mvc
<!-- 配置清理无效链接 -->
<bean class="com.taotao.web.evictor.IdleConnectionEvictor"
init-method="start" destroy-method="shutdown" />socket
</beans>
测试