本文是一篇接口论文范文,关于接口方面学士学位论文,关于一种高性能的HTTP接口服务设计与实现相关毕业论文格式范文。适合接口及注解及动态方面的的大学硕士和本科毕业论文以及接口相关开题报告范文和职称论文写作参考文献资料下载。
2系统实现
2.1接口动态加载
为方便动态加载接口逻辑,每个接口都使用独立类实现,通过Ja注解和反射机制实现动态加载.注解定义如下,用于描述接口信息:
@Retention(RetentionPolicy.RUNTIME)
public@interfaceInterfaceConfig{
publicStringname();//接口名称
publicintsize()default0;//接口最大并发数
publiclongtimeOut()default30*1000;}//接口执行超时时间
这里通过注解描述了接口名称、最大并发数、超时时间等,然后通过Ja的反射机制动态加载接口信息.代码片断如下:
ConcurrentHashMap
Set
for(Classclazz:classes){
if(clazz.isAnnotationPresent(InterfaceConfig.class)){//获取接口类对应的注解信息
Annotationannotation等于clazz.getAnnotation(InterfaceConfig.class);
InterfaceConfigdescr等于(InterfaceConfig)annotation;
Map
intconcurrentSize等于descr.size();
prop.put("InterfaceConfig",descr);
prop.put("interfaceClass",clazz);
configMap.put(descr.name(),prop);}}
2.2接口调用过程
当用户端请求到达接口代理时,由代理类调用实际的接口逻辑并返回结果,代码如下:
privateJSONObjectinvokeProcess(Map
Classclazz等于(Class)map.get("interfaceClass");
Objectobj等于objectMap.get(interfaceName);
if(obj等于等于null){
obj等于clazz.newInstance();
objectMap.put(interfaceName,obj);}
//调用接口实现的doProcess方法执行接口逻辑
Methodm等于clazz.getMethod("doProcess",newClass[]{HttpServletRequest.class,HttpServletResponse.class});
JSONObjectdata等于(JSONObject)m.invoke(obj,newObject[]{request,response});
returndata;}
3性能测试
在Linux下部署并测试程序,监听8090端口,如图3.1所示.