麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 網(wǎng)站 > WEB開(kāi)發(fā) > 正文

Webservice接口通用實(shí)現(xiàn)方法分享

2024-04-29 21:01:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

寫(xiě)一個(gè)好的Weservice Interface,關(guān)鍵是要多多總結(jié)。除了有Request,Response之外,還有很多。總結(jié)如下有:

Request:webservice的輸入。

Response:webservice輸出。

DataRsponse:帶結(jié)果集的webservice輸出。

ResultData:結(jié)果集,不同的interface,其ResultData不一樣。

ReslutInfo:描述調(diào)用請(qǐng)求成功或者失敗的對(duì)象。

WebServiceTemplate:模板類,定義如何調(diào)用下層函數(shù),如何處理異常錯(cuò)誤的流程

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

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

ResponseFactory:用來(lái)組裝 webservice消息 的工廠類。

ResultInfoFactory:用來(lái)處理異常信息的 工廠類,這個(gè)一個(gè)接口,為它實(shí)現(xiàn)一個(gè)默認(rèn)實(shí)例吧。

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

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.     } 

一個(gè)簡(jiǎn)單的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.  

一個(gè)簡(jiǎn)單的TestCase測(cè)試:

  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.  

雖然這些很簡(jiǎn)單,但是能夠解決80%的問(wèn)題。剩下20%還要根據(jù)實(shí)際情況來(lái)定。況且,這些代碼在你的手中還有持續(xù)改優(yōu)化的空間。千萬(wàn)不要做一個(gè)愛(ài)Copy的孩子。

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 人成免费网站 | 精品国产91久久久久久久妲己 | 久草在线视频福利 | 播色网 | 麻豆porn | 日韩av片在线免费观看 | av电影在线观看网站 | 国产羞羞视频在线免费观看 | 3344永久免费| 午夜av男人的天堂 | 成年免费大片黄在线观看岛国 | 亚洲欧美日韩免费 | 91热久久免费频精品黑人99 | 国产精品自在线拍 | 一本色道久久综合亚洲精品图片 | 久久精品99久久久久久2456 | 国产91久久久 | 小雪奶水翁胀公吸小说最新章节 | 国产一区二区三区撒尿在线 | 日日影视| 性猛交ⅹxxx乱巴西 在线播放中文 | 精品国产亚洲人成在线 | 色播视频在线播放 | 国产午夜精品久久久久 | 一级黄色免费观看视频 | 欧美日韩色 | 毛片大全免费 | 伊人99re | 中午字幕无线码一区2020 | 一区二区久久电影 | 欧美a视频在线观看 | 免看黄大片aa| 亚洲成人福利 | 久久精品一区二区三区国产主播 | 丰满年轻岳中文字幕一区二区 | 午夜精品成人一区二区 | 国产美女一区二区在线观看 | 国产一区二区午夜 | 99久久婷婷国产综合精品青牛牛 | 激情久久免费视频 | 亚洲人成在线播放 |