接続プールを使用するhttpClientの構成
3203 ワード
httpClient4.3 DefaultHttpClientとPoolingClientConnectionmanagerの廃止を開始しました.もともとこのように配置されていた接続工場
springが推奨するクラスに変更し、以下のように構成します.
接続プール付きorgを構成する.springframework.web.client.RestTemplate
<bean id="clientHttpRequestFactory"
class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
<constructor-arg>
<bean class="org.apache.http.impl.client.DefaultHttpClient">
<constructor-arg>
<bean class="org.apache.http.impl.conn.PoolingClientConnectionManager">
<property name="maxTotal" value="10" />
<property name="defaultMaxPerRoute" value="5" />
</bean>
</constructor-arg>
</bean>
</constructor-arg>
<property name="connectTimeout" value="30000" />
<property name="readTimeout" value="30000" />
</bean>
springが推奨するクラスに変更し、以下のように構成します.
<bean id="pollingConnectionManager"
class="org.apache.http.impl.conn.PoolingHttpClientConnectionManager">
<property name="maxTotal" value="10" />
<property name="defaultMaxPerRoute" value="5" />
</bean>
<bean id="httpClientBuilder" class="org.apache.http.impl.client.HttpClientBuilder"
factory-method="create">
<property name="connectionManager" ref="pollingConnectionManager" />
</bean>
<bean id="httpClient" factory-bean="httpClientBuilder"
factory-method="build" />
<!-- -->
<bean id="clientHttpRequestFactory"
class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
<constructor-arg ref="httpClient" />
<property name="connectTimeout" value="30000" />
<property name="readTimeout" value="30000" />
</bean>
接続プール付きorgを構成する.springframework.web.client.RestTemplate
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg ref="clientHttpRequestFactory" />
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean
class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<bean class="org.springframework.http.converter.FormHttpMessageConverter" />
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
<bean
class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter" />
</list>
</property>
</bean>