美文网首页java
spring中集成httpclient

spring中集成httpclient

作者: 南之默 | 来源:发表于2017-08-17 12:35 被阅读0次
httpclient.properties 配置文件
#设置连接总数 200
httpclient.maxTotal=200
#设置单个地址的最大并发数
httpclient.defaultMaxPerRoute=20
#连接超时时间 10s
httpclient.connectTimeout=10000
#从连接池中获取到连接的最长时间  5s
httpclient.connectionRequestTimeout=5000
#数据传输的最长时间  2s
httpclient.socketTimeout=2*1000
#提交请求前测试连接是否可用 
httpclient.staleConnectionCheckEnabled=true
applicationContext-httpclient.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

    <!-- 定义连接管理器 -->
    <bean id="connectManage"
        class="org.apache.http.impl.conn.PoolingHttpClientConnectionManager">
        <property name="maxTotal" value="${httpclient.maxTotal}"></property>
        <property name="defaultMaxPerRoute" value="${httpclient.defaultMaxPerRoute}"></property>
    </bean>

    <!-- 定义 HttpClient工厂,这里使用HttpClientBuilder构建--> 
    <bean id="httpClientBuilder" class="org.apache.http.impl.client.HttpClientBuilder">
        <property name="connectionManager" ref="connectManage"></property>
    </bean>

    <!-- 定义httpclient对象,需要配置多例 -->
    <bean class="org.apache.http.impl.client.CloseableHttpClient"
        factory-bean="httpClientBuilder" factory-method="build" scope="prototype"></bean>

    <!-- 定义requestConfig的工厂 --> 
    <bean id="requestConfig" class="org.apache.http.client.config.RequestConfig.Builder">
        <property name="connectTimeout" value="${httpclient.connectTimeout}"></property>
        <property name="connectionRequestTimeout" value="${httpclient.connectionRequestTimeout}"></property>
        <property name="socketTimeout" value="${httpclient.socketTimeout}"></property>
        <property name="staleConnectionCheckEnabled" value="${httpclient.staleConnectionCheckEnabled}"></property>
    </bean>
    
    <!-- 定义连接配置信息 -->
    <bean class="org.apache.http.client.config.RequestConfig"
        factory-bean="requestConfig" factory-method="build"></bean>
        
    <!-- 定期清理无效的连接 -->  
    <bean class="com.allpay.demo.common.httpclient.IdleConnectionEvictor">
        <constructor-arg index="0" ref="connectManage"></constructor-arg>
        <!-- 间隔5分钟清理一次 -->  
        <constructor-arg index="1" value="5000" />  
    </bean>
</beans>

相关文章

网友评论

    本文标题:spring中集成httpclient

    本文链接:https://www.haomeiwen.com/subject/dmbgrxtx.html