<?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>
測試