亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

Webservice接口通用實現方法分享

2024-04-29 21:01:10
字體:
來源:轉載
供稿:網友

看到許多中小項目的webservice接口的源代碼,不禁有個吐槽的沖動。除了會用CXF,Axis2等神級框架,其他的懶得動了,都是Ctrl+V,Ctrl+C,把其他模塊的Request,Response貼過來。一旦增加某個特性,不得不在所有Request,Response遨游一遍。早知今日,何必當初呢。

寫一個好的Weservice Interface,關鍵是要多多總結。除了有Request,Response之外,還有很多。總結如下有:

Request:webservice的輸入。

Response:webservice輸出。

DataRsponse:帶結果集的webservice輸出。

ResultData:結果集,不同的interface,其ResultData不一樣。

ReslutInfo:描述調用請求成功或者失敗的對象。

WebServiceTemplate:模板類,定義如何調用下層函數,如何處理異常錯誤的流程

ResultDataCallback:回調類,與template配合,適用【返回結果集】操作,比如【獲取用戶信息】,【下訂單】

ResultCallback:回調類,與Template配置,適用于【不返回帶結果集的接口,比如【修改用戶名】

ResponseFactory:用來組裝 webservice消息 的工廠類。

ResultInfoFactory:用來處理異常信息的 工廠類,這個一個接口,為它實現一個默認實例吧。

有了這些小弟們,任何webservice接口的定義都能輕易搞定,不信我舉個例子給你,咱們以【加法】為例!

AddRequest:
 

  1. public class AddRequest extends Request{ 
  2.      
  3.     private int add; 
  4.     private int added; 
  5.      
  6.     public int getAdd() { 
  7.         return add; 
  8.     } 
  9.     public void setAdd(int add) { 
  10.         this.add = add; 
  11.     } 
  12.     public int getAdded() { 
  13.         return added; 
  14.     } 
  15.     public void setAdded(int added) { 
  16.         this.added = added; 
  17.     } 
  18.      

 

 

AddResonse:

 

  1. public class AddResponse extends DataResponse<AddResultData>{ 
  2.  
  3.     private AddResultData resultData; 
  4.  
  5.     public AddResultData getResultData() { 
  6.         return resultData; 
  7.     } 
  8.  
  9.     public void setResultData(AddResultData resultData) { 
  10.         this.resultData = resultData; 
  11.     } 
  12.  

AddResultData:

  1. public class AddResultData implements ResultData{ 
  2.  
  3.     private int sum; 
  4.  
  5.     public AddResultData(int sum) { 
  6.         super(); 
  7.         this.sum = sum; 
  8.     } 
  9.  
  10.     public AddResultData() { 
  11.         super(); 
  12.     } 
  13.  
  14.     public int getSum() { 
  15.         return sum; 
  16.     } 
  17.  
  18.     public void setSum(int sum) { 
  19.         this.sum = sum; 
  20.     } 

一個簡單的webservice接口:

  1. public class Soap { 
  2.  
  3.      
  4.     public AddResponse add(final AddRequest request){ 
  5.         return WebServiceTemplate.doResult(new ResultDataCallback<AddRequest,AddResponse,AddResultData>(){ 
  6.  
  7.             public AddResultData done() throws Exception { 
  8.                 return new AddResultData(request.getAdd()+request.getAdded()); 
  9.             } 
  10.  
  11.             public AddResponse getRsp() { 
  12.                 return new AddResponse(); 
  13.             } 
  14.  
  15.         }); 
  16.     } 
  17.  

一個簡單的TestCase測試:

  1. public class TestSoap { 
  2.  
  3.      
  4.     @Test 
  5.     public void testAdd(){ 
  6.         AddRequest add = new AddRequest(); 
  7.         add.setAdd(1); 
  8.         add.setAdded(2); 
  9.          
  10.         Soap soap = new Soap(); 
  11.         AddResponse rsp =soap.add(add); 
  12.         assertEquals(3,rsp.getResultData().getSum()); 
  13.      
  14.         assertEquals("0",rsp.getResultInfo().getResultCode()); 
  15.         assertEquals("success",rsp.getResultInfo().getResultDesc()); 
  16.     } 
  17.  

雖然這些很簡單,但是能夠解決80%的問題。剩下20%還要根據實際情況來定。況且,這些代碼在你的手中還有持續改優化的空間。千萬不要做一個愛Copy的孩子。

相關的代碼附件地址:【http://files.cnblogs.com/MartinChen999/webservice.rar】

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色播久久人人爽人人爽人人片视av| 欧美日韩在线视频一区| 91精品国产色综合久久不卡98口| 国产精品视频白浆免费视频| 亚洲激情第一页| 亚洲美女精品成人在线视频| 懂色av中文一区二区三区天美| 亚洲精品久久视频| 欧美电影在线观看高清| 日韩精品极品毛片系列视频| 亚洲成人免费网站| 欧美大成色www永久网站婷| 欧亚精品在线观看| 欧美在线观看www| 亚洲一区二区自拍| 亚洲国产天堂久久综合| 北条麻妃一区二区三区中文字幕| 久久久精品2019中文字幕神马| 亚洲一区二区三区xxx视频| 亚洲欧美另类人妖| 日韩女优在线播放| 韩国精品久久久999| 一区二区三区在线播放欧美| 日韩精品免费电影| 国产精品中文在线| 日本91av在线播放| 亚洲天堂精品在线| 久久97久久97精品免视看| 欧美日韩一区免费| 亚洲精品国产suv| 国产亚洲美女久久| 成人美女免费网站视频| 日本高清不卡在线| 97色在线观看免费视频| 日韩av在线一区二区| 欧美日韩精品在线观看| 国产精品白丝jk喷水视频一区| 国产亚洲精品一区二555| 久久人人爽亚洲精品天堂| www.国产精品一二区| 久久久久久亚洲精品不卡| 国产精品成人国产乱一区| 69久久夜色精品国产7777| 成人久久一区二区三区| 成人激情视频小说免费下载| 韩国视频理论视频久久| 福利视频导航一区| 亚洲精品国精品久久99热| 全亚洲最色的网站在线观看| 欧日韩在线观看| 中文国产成人精品久久一| 国产精品免费一区二区三区都可以| 欧美日韩一区免费| 欧日韩不卡在线视频| 欧美黑人性视频| 午夜精品美女自拍福到在线| 欧美在线免费观看| 欧美大尺度在线观看| 2020久久国产精品| 国产一区二区三区在线观看视频| 97国产一区二区精品久久呦| 成人av资源在线播放| 国产精品网红福利| 91在线免费网站| 国内精品一区二区三区| 日韩精品免费在线视频| 97超碰色婷婷| 久久伊人精品一区二区三区| 国模精品一区二区三区色天香| 欧美国产高跟鞋裸体秀xxxhd| 欧美视频裸体精品| 久久精品99国产精品酒店日本| 欧美大人香蕉在线| 欧美成人一区二区三区电影| 欧美中文字幕视频在线观看| 国产亚洲精品va在线观看| 亚洲国产成人精品久久久国产成人一区| 欧美刺激性大交免费视频| 高跟丝袜欧美一区| 久久精品国产成人| 51色欧美片视频在线观看| 国产一区二区三区在线免费观看| 91国产中文字幕| 性日韩欧美在线视频| 日韩亚洲精品视频| 成人免费观看a| 在线亚洲午夜片av大片| 欧美久久精品午夜青青大伊人| 欧美做爰性生交视频| 日本亚洲欧美三级| 日韩视频亚洲视频| 久久91亚洲精品中文字幕| 日韩在线视频二区| 91精品久久久久| 欧美国产精品人人做人人爱| 日韩中文字幕av| 久久五月天色综合| 欧洲s码亚洲m码精品一区| 91国产美女在线观看| 国产日韩欧美一二三区| 亚洲国产成人一区| 国产精品高潮呻吟久久av野狼| 日韩电影网在线| 美女av一区二区三区| 国产精品2018| 97视频免费在线看| 欧美成人精品一区二区三区| 美女av一区二区| 91在线播放国产| 麻豆乱码国产一区二区三区| 久久露脸国产精品| 日韩欧美亚洲成人| 久久久久久伊人| 精品久久久久久电影| 亚洲久久久久久久久久久| 亚洲欧美日韩一区二区三区在线| 国模视频一区二区三区| 成人黄色中文字幕| 亚洲自拍另类欧美丝袜| 668精品在线视频| 国产精品视频久久久| 日韩国产高清视频在线| 一区二区亚洲精品国产| 最近更新的2019中文字幕| 色琪琪综合男人的天堂aⅴ视频| 国产精品久久久久高潮| 欧美激情图片区| 最近2019年日本中文免费字幕| 91精品久久久久久久久久久| 久久的精品视频| 国产日韩欧美日韩大片| 欧美日韩福利视频| 成人精品一区二区三区| 亚洲色图15p| 欧洲亚洲免费视频| 国产ts人妖一区二区三区| 午夜精品久久久久久99热| 日韩精品视频在线观看网址| 亚洲aaaaaa| 国产成人在线视频| 热久久美女精品天天吊色| 国产精品一区二区久久精品| 成人精品在线视频| 亚洲第一偷拍网| 97精品视频在线| 国产欧美日韩精品在线观看| 免费av在线一区| 国产91av在线| 欧美第一页在线| 日韩av免费在线观看| 色悠悠久久88| 国产精品久久久久久久久粉嫩av| 亚洲free性xxxx护士hd| 色妞欧美日韩在线| 国产精品91久久久| 亚洲人成电影在线观看天堂色| 国产91精品黑色丝袜高跟鞋| 91在线视频免费| 日韩欧美福利视频| 九九热99久久久国产盗摄| 亚洲国产欧美一区二区丝袜黑人| 日韩精品黄色网| 欧美精品第一页在线播放| 国产美女精品免费电影|