`

配置使用连接池的httpClient

    博客分类:
  • java
 
阅读更多

httpClient4.3开始弃用了DefaultHttpClient和PoolingClientConnectionManager.原来这样配置的连接工厂

 

<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>

 

 

 

 

 

 

分享到:
评论

相关推荐

    HttpCient连接池Demo

    在`HttpClientDemo`这个项目中,我们将看到如何配置和使用HttpClient的连接池来处理http和https的请求。HttpClient库不仅支持标准的HTTP协议,还通过SSL/TLS协议扩展了对HTTPS的支持,这使得它在需要安全通信的场景...

    springboot中注解配置连接池

    要通过注解配置连接池,我们需要在配置类上添加`@Configuration`注解,然后创建一个`DataSource`的bean。例如,使用HikariCP: ```java import com.zaxxer.hikari.HikariConfig; import ...

    连接池实现原理及效率测试

    《连接池实现原理及效率测试》 连接池是数据库应用中的一个重要概念,它在系统设计中扮演着提高性能、优化...在实际开发中,我们需要根据项目需求,合理配置连接池参数,选择高效的连接池实现,以实现最佳的系统性能。

    使用HttpClient必须的jar包

    10. **配置和定制**:HttpClient具有高度可配置性,可以根据项目需求调整连接超时、读取超时、连接池大小等参数。 在实际使用中,开发者还需要根据项目的具体需求,考虑是否需要引入其他辅助库,如处理JSON的Gson或...

    使用httpClient访问https+443端口号。

    在实际开发中,还可能需要根据项目需求进行其他定制,例如添加重试机制、连接池管理、超时设置等。对于大型项目,推荐使用更现代的库,如Apache HttpComponents HttpClient 4.x系列,因为它们提供了更好的性能和更多...

    使用httpclient访问servlet

    HttpClient支持连接池管理,通过`PoolingHttpClientConnectionManager`可以控制并发连接数。同时,可以设置重试策略,如`HttpRequestRetryHandler`,在某些网络问题时自动重试请求。 8. **异步调用**: ...

    org.apache.commons.httpclient

    1. **初始化HttpClient**:创建HttpClient实例,配置连接管理器,设置超时和重试策略。 2. **构建请求**:使用`HttpGet`或`HttpPost`对象创建HTTP请求,设置URL,添加请求头和请求参数。 3. **执行请求**:通过...

    commons-httpclient,java中使用httpclient中使用的扩展工具

    11. **连接池管理**:`PoolingHttpClientConnectionManager`是HttpClient 4.x版本中的连接池管理器,可以更高效地复用TCP连接,减少建立新连接的开销。 在实际应用中,你需要根据项目需求配置HttpClient实例,例如...

    httpclient.zip

    2. 创建HTTPClient实例:根据需求配置连接池、超时时间、重试策略等。 3. 注册到Spring容器:将HTTPClient实例作为bean注入到Spring的IoC容器中。 4. 使用HTTPClient:在需要发送HTTP请求的类中,通过@Autowired注解...

    HttpClient使用教程 事例

    在提供的压缩包文件中,"第一个版本.rar"和"第二个版本.rar"可能包含了不同的HttpClient使用示例或者不同版本的代码。你可以解压并查看这些文件,以便更深入地理解和学习HttpClient的具体用法。每个版本可能包含不同...

    httpclient3.1 javadoc chm版

    使用HttpConnectionManager来管理连接池,如SingleClientConnManager或MultiThreadedHttpConnectionManager。 五、重定向处理 HttpClient可以自动处理服务器返回的重定向响应,通过设置RedirectHandler实现自定义...

    httpclient.jar包下载

    2. **请求和响应模型**:HttpClient使用HttpRequest和HttpResponse对象封装HTTP请求和响应,便于处理请求头、请求体和响应头、响应体。 3. **身份验证和安全**:HttpClient支持多种身份验证机制,包括基本认证、...

    HttpClient封装工具

    首先,需要在配置类中定义一个HttpClient实例,配置连接池、超时时间等参数。然后,可以创建一个HTTP请求执行器(例如`CloseableHttpClient`),并将其注入到需要发送HTTP请求的服务中。 3. **创建HttpClient Bean*...

    httpclient

    10. **性能优化**:了解如何关闭不再需要的连接,使用合适的连接超时,以及配置合适的连接池大小,都是提高HttpClient性能的关键。 理解并熟练使用这些知识点,可以让你在使用Apache HttpClient处理HTTP请求时更加...

    httpClient需要的jar包

    10. **性能优化**:通过配置连接超时、响应超时、线程池大小等参数,以及使用合适的连接管理策略,可以进一步优化HttpClient的性能。 在实际使用HttpClient时,需要根据项目需求选择合适的版本,理解其工作原理,...

    httpclient简单使用

    - `PoolingHttpClientConnectionManager`用于管理连接池,可以设置最大连接数、超时时间等: ```java PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); cm.setMaxTotal(100)...

    连接池研究1

    【连接池原理与管理】 连接池是数据库应用中常见的资源管理技术,它的主要作用是高效地管理和复用数据库连接,避免频繁的建立...在使用连接池时,应确保正确配置参数,并监控连接池的状态,以避免资源泄漏和性能瓶颈。

    httpclient方式调用url

    除了基本的HTTP请求,HttpClient还支持其他特性,如重试策略、连接池管理、Cookie管理等。例如,可以通过`RequestConfig`定制请求配置,包含超时时间、重试次数等。 ```java RequestConfig config = RequestConfig....

    httpClient使用指南最新版

    ### HttpClient 使用指南知识点详解 ...以上是基于提供的部分内容对HttpClient使用指南的相关知识点进行了详细说明。通过这些知识点的学习,可以更好地理解和掌握HttpClient的工作原理及其在实际开发中的应用。

Global site tag (gtag.js) - Google Analytics