码迷,mamicode.com
首页 > 其他好文 > 详细

给自己的requestProxy写个教程

时间:2014-08-09 00:13:46      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:httpclint

requestProxy 是自己工作的需要,因为公司的业务,经常要对接第三方也就是各种供应,总是各种tttp,webservice

webservice其实还有如果有的供应商提供了jar,这个注入就来就好了,关键是好多都是http的没有什么可用的(或者我不知道),之前又参与了jeecg的minidao所以

用minidao的思路做了requestProxym就是用来接口和代理来完成所有的请求工作,然后使用Jackson和dom4j来完成对象的解析.

感觉更多多供应返回的xml,自己也写了一个xml解析工具,有需要的可以看下,利用反射和泛型完成常用的XMl解析.

下面介绍下自己的使用方法

1.第一肯定是xml配置,使用了httpclient来做底层的请求,连接池什么的还是大家配置比较好,每个人的需求都不同

<?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:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jpa="http://www.springframework.org/schema/data/jpa"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"
	default-autowire="byName" default-lazy-init="false">

	<description>Spring 管理类配置 </description>

	<context:annotation-config></context:annotation-config>

	<!-- httpclient线程池 -->
	<bean id="connectionManagerParams"
		class="org.apache.commons.httpclient.params.HttpConnectionManagerParams">
		<property name="connectionTimeout" value="120000" />
		<property name="soTimeout" value="120000" />
		<property name="maxTotalConnections" value="30" />
		<property name="defaultMaxConnectionsPerHost" value="20" />
	</bean>

	<bean id="connectionManager"
		class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager">
		<property name="params" ref="connectionManagerParams" />
	</bean>

	<bean id="httpClient" class="org.apache.commons.httpclient.HttpClient">
		<constructor-arg>
			<ref bean="connectionManager" />
		</constructor-arg>
	</bean>


	<!-- HTTP动态代理类 -->
	<bean id="requestHandler" class="com.onepiece.requestproxy.requestproxy.RequestProxyHandler">
		<property name="httpClient" ref="httpClient"></property>
	</bean>

	<!-- 注册 HTTP请求动态代理接口 -->
	<bean class="com.onepiece.requestproxy.factory.RequestBeanFactory">
		<property name="packagesToScan">
			<list>
				<value>com.jueyue.onepiece.test.request.*</value>
			</list>
		</property>
	</bean>



</beans>

2.编写接口这里参数和spring 重名了有点不好,大家可以自己重命名下,自己使用地方太多不好改了

@IRequest("testRequest")
public interface ITestRequest {

	@IRequestMethod(type = RequestTypeEnum.GET, url = "http://api.map.baidu.com/telematics/v3/weather")
	String testGet(@RequestParams("location") String location,
			@RequestParams("output") String output,
			@RequestParams("ak") String ak);
	
	@IRequestMethod(type = RequestTypeEnum.GET, url = "http://api.map.baidu.com/telematics/v3/weather")
	BaiduWeatherEntity testGetEntity(@RequestParams("location") String location,
			@RequestParams("output") String output,
			@RequestParams("ak") String ak);

}

3.server 里面注入,然后像java一样调用,就没有对外的感觉了

最后附上自己的地址

git


如果大家有兴趣,自己会慢慢写一些教程

给自己的requestProxy写个教程,布布扣,bubuko.com

给自己的requestProxy写个教程

标签:httpclint

原文地址:http://blog.csdn.net/qjueyue/article/details/38447717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!