首页 > 代码库 > 给自己的requestProxy写个教程

给自己的requestProxy写个教程

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=http://www.mamicode.com/"120000" />>

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


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