国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種高性能的HTTP接口服務(wù)設(shè)計與實現(xiàn)

2013-06-08 03:05賈晨王為達
關(guān)鍵詞:調(diào)用代碼名稱

賈晨 王為達

2 系統(tǒng)實現(xiàn)

2.1 接口動態(tài)加載

為方便動態(tài)加載接口邏輯,每個接口都使用獨立類實現(xiàn),通過Java注解和反射機制實現(xiàn)動態(tài)加載。注解定義如下,用于描述接口信息:

@Retention(RetentionPolicy.RUNTIME)

public @interface InterfaceConfig{

public String name(); // 接口名稱

public int size() default 0; // 接口最大并發(fā)數(shù)

public long timeOut() default 30*1000;} // 接口執(zhí)行超時時間

這里通過注解描述了接口名稱、最大并發(fā)數(shù)、超時時間等,然后通過Java的反射機制動態(tài)加載接口信息。代碼片斷如下:

ConcurrentHashMap> configMap=newConcurrentHashMap>();

Set> classes = PackageUtilAdv.getClasses(CLASS_PATH);// 獲取CLASS_PATH下所有類文件

for(Class clazz : classes) {

if(clazz.isAnnotationPresent(InterfaceConfig.class)) {// 獲取接口類對應(yīng)的注解信息

Annotation annotation = clazz.getAnnotation(InterfaceConfig. class);

InterfaceConfig descr = (InterfaceConfig)annotation;

Mapprop=new HashMap();

int concurrentSize = descr.size();

prop.put("InterfaceConfig", descr);

prop.put("interfaceClass", clazz);

configMap.put(descr.name(), prop);}}

2.2 接口調(diào)用過程

當用戶端請求到達接口代理時,由代理類調(diào)用實際的接口邏輯并返回結(jié)果,代碼如下:

private JSONObject invokeProcess(Map map, String interfaceName, HttpServletRequest request, HttpServletResponse response) throws Exception {// 接口對應(yīng)實際的Class

Class clazz = (Class) map.get("interfaceClass");

Object obj = objectMap.get(interfaceName);

if (obj == null) {

obj = clazz.newInstance();

objectMap.put(interfaceName, obj);}

// 調(diào)用接口實現(xiàn)的doProcess方法執(zhí)行接口邏輯

Method m=clazz.getMethod("doProcess",newClass[]{HttpServletRequest.class, HttpServletResponse.class});

JSONObject data = (JSONObject) m.invoke(obj, new Object[]{request, response});

return data;}

3 性能測試

在Linux下部署并測試程序,監(jiān)聽8090端口,如圖3.1所示。

猜你喜歡
調(diào)用代碼名稱
基于Android Broadcast的短信安全監(jiān)聽系統(tǒng)的設(shè)計和實現(xiàn)
神秘的代碼
一周機構(gòu)凈增(減)倉股前20名
重要股東二級市場增、減持明細
滬港通一周成交概況
滬港通一周成交概況
滬港通一周成交概況
滬港通一周成交概況
近期連續(xù)上漲7天以上的股
利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
崇左市| 巴彦淖尔市| 丰台区| 迭部县| 莱阳市| 平度市| 津南区| 名山县| 修文县| 乐山市| 乌兰浩特市| 丹阳市| 环江| 遂溪县| 石狮市| 射阳县| 梓潼县| 阳城县| 纳雍县| 西丰县| 台中市| 原阳县| 康马县| 苏尼特右旗| 丹棱县| 中山市| 大方县| 曲松县| 教育| 稷山县| 霞浦县| 平南县| 甘泉县| 崇左市| 莒南县| 襄樊市| 东明县| 青龙| 双牌县| 鄂托克前旗| 洱源县|