《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種動態Web自動裝配系統的設計與實現
一種動態Web自動裝配系統的設計與實現
2014年微型機與應用第13期
陳 岡
武漢紡織大學 管理學院,湖北 武漢
摘要: 大多數中小企業的Web系統屬于輕量級業務處理。基于Java Web平臺,提出了一種輕量化系統開發架構,該架構實現了請求形式的改變與業務處理本質的統一,支持常規業務邏輯的自動裝配處理,具有可復用、標準化、代碼量低的優勢。
關鍵詞: JavaWeb 裝配 架構 設計
Abstract:
Key words :

  摘  要: 大多數中小企業的Web系統屬于輕量級業務處理。基于Java Web平臺,提出了一種輕量化系統開發架構,該架構實現了請求形式的改變與業務處理本質的統一,支持常規業務邏輯的自動裝配處理,具有可復用、標準化、代碼量低的優勢。

  關鍵詞: Java Web;裝配;架構;設計

  隨著網絡技術、計算機技術的發展,越來越多的中小企業單位開始走上信息化的道路。這些企事業單位不僅需要外部網站的建設,同時還有內部Web信息管理系統的建設(例如人力資源管理系統、考勤管理系統等)。根據國家工商總局公布的數據,2005年我國中小企業規模數量為2 836萬家,而網站總數量僅為69萬家;2012年我國中小企業規模猛增到5 175萬家,而網站總數量僅僅為530萬家。顯然,企業內外部Web系統數量遠遠低于企業現有數量。因此,基于Java跨平臺特性,Java Web系統具有極大地市場需求和開發潛力。

  中小企業內外部Web系統具有一些共性特征:動態、輕量化,例如一般涉及數據處理,且數據量不是很大、業務處理邏輯也不復雜。其網站常見功能有:單位組織的介紹、產品的介紹、用戶管理、新聞管理、在線咨詢或服務等。而內部Web系統的功能側重于數據的查詢、錄入、更新、刪除等,較少涉及復雜的數據關聯處理。

  對于上述輕量化的常規數據處理,研究一種能夠將業務邏輯處理自動裝配的系統DWAS(Dynamic Web Assembly System),具有良好的現實意義:(1)避免重復編寫數據的增刪查改等操作,自動裝配業務處理邏輯,提高復用性,降低開發成本;(2)提供一個標準化、高質量、輕量化的業務邏輯處理基礎平臺,降低由于開發人員水平差異帶來的系統質量問題;(3)降低Web系統開發門檻,用戶只需要進行簡單的系統配置或組裝操作即可完成功能處理要求。

  1 系統設計架構

  1.1 總體架構

  DWAS基于MVC架構,融合Hibernate、Struts和SpringMVC思想。系統著重基于B/S模式的輕量級Web系統開發。DWAS能夠自動裝配常規SQL操作,用戶無需編寫SQL語句。DWAS能夠自動裝配組合查詢:對于多條件的組合查詢數據,動態Web自動裝配系統能夠自動適應。系統能夠自適應視圖變化:當視圖層提交數據的形式改變(例如增加或刪除頁面表單域)時,無需修改處理邏輯的程序代碼。DWAS支持主流數據庫和連接池產品,其應用方式也顯示多樣化特征。DWAS總體架構如圖1所示。

001.jpg

  來自于頁面的業務處理請求,先由DWAS的前端控制器接收,然后由控制器工廠自動裝配。控制器工廠調用模型層相應的業務處理Bean,由后者與數據庫進行交互。最后,控制器工廠將處理后并按照要求封裝好的結果數據轉發給最終的結果頁面(例如顯示登錄成功的界面)。

  1.2 與同類產品的比較分析

  目前市場上主流的同類產品主要有Spring MVC、Struts和Hibernate等。具體比較分析如表1所示。

003.jpg

  Spring是輕量級的控制反轉和面向切面的開源框架,是為了解決企業應用開發的復雜性而創建。Spring MVC需要配置過多的XML文件。Struts是Apache Jakarta項目的一個頂級項目,采用了基于Web的MVC模式。Struts的不足在于過于繁雜的標簽體系和大量不太適用的功能。Hibernate是一個開放源代碼的對象關系映射框架,使用對象編程思維來操縱數據庫,但對于批量數據的修改刪除操作不太適合。

  DWAS汲取了這些產品的優點,進行了設計思想上的整合、修正和完善。

  1.3 自動裝配流程

  DWAS裝配流程如圖2所示。

002.jpg

  系統準備:JDK、服務器環境的配置、數據庫服務器的安裝、DWAS系統JAR文件的配置等;編寫實體類和XML配置文件:與業務處理邏輯對應的實體類、描述業務處理的標識或SQL語句的XML配置文件;視圖頁面和運行結果頁面:前者是業務處理請求界面,后者則是反饋執行結果的界面。

  對第①部分的處理,使用一些文本編輯器即可完成,并不需要開發設計人員具有較高的開發水平。因此,即使是系統前臺的設計人員稍作培訓,都可以完成。而第②部分,則由DWAS負責自動完成。

  1.4 應用方式

  DWAS的應用方式很靈活,既可以將其擴展成獨立的IDE平臺,也可采用插件方式與第三方IDE集成。

  2 實踐應用展示

  2.1應用場景

  為簡化說明,假定這樣的幾個應用場景:學生信息查詢(不定條件)、學生注冊。考察在視圖發生變化的情況下,DWAS自適應這種變化的處理能力。

  對于不同的應用場景,表單域發生改變時,業務處理標識不變,結果頁面不變(只需要回傳數據到頁面)。用戶只需要編寫XML配置描述,指定Bean、動作標識、處理成功(失敗)轉發頁面、返回數據屬性名,DWAS即可實現自適應視圖變化的處理,而無需修改后臺業務處理代碼。當應用場景僅僅是表單域發生改變時(例如應用場景從根據“姓名”查詢變更為根據“姓名、班級”查詢),業務處理的本質(學生基本信息的查詢)并未發生改變,因此采用相同的業務處理標識。至于結果頁面,從圖1可以看到,控制器工廠將封裝后的處理結果數據轉發給最終結果頁面,后者只是顯示傳送過來的數據包而已,因此結果頁面不與表單域嚴密耦合。而“學生注冊”這種應用場景,由于屬于另外一種業務處理,因此采用不同的業務處理標識。具體如表2、表3所示。

  無論是業務處理標識,還是XML描述,使用外部文本編輯器即可進行編輯,其形式的改變并不會影響DWAS內部處理代碼,因而視圖形式與內在邏輯實現了良好解耦。

  2.2 部分關鍵實現

  DWAS要獲取請求數據的鍵值對,代碼如下。

  protected Map<String,String[]>getRequestDataMap(){

  //鍵值對

  Map<String,String[]>map=request.getParameterMap();

  try{

  Method method=map.getClass().getMethod("setLocked",new Class[]{boolean.class});//接觸map鎖定

  method.invoke(map,new Object[]{new Boolean(false)});//反射

  map.remove("action");

  List<String> list=getParametersName();//請求參數名

  …

  }catch (Exception e){e.printStackTrace();}

  return map;

  }

  對請求參數進行解析,代碼如下。

  protected List<String> getParametersName(){

  List<String>temp=new ArrayList<String>();

  Set<Entry<String,String[]>>set=map.entrySet();

  for(Entry<String,String[]>m:set){

  String o=m.getKey();

  String[] value=m.getValue();

  if(SysCfgEntity.getAction().equals(Constants.query))

  continue;

  else

  temp.add(o);

  }

  return temp;

  }

  根據Bean名稱獲取數據表字段并進行裝配,代碼如下。

  protected String getTablePrimaryKey(){

  …

  Connection conn=DBFactory.getInstance().getConnection();

  rs=conn.getMetaData().getPrimaryKeys(null,null,

  getTableName());

  primaryKey=rs.getString("COLUMN_NAME");

  //反射實體

  ReflectEntity entity=new ReflectEntity();

  Field[]fields=entity.getFields();

  Object instance=entity.getInstance();//實例

  BeanUtils.populate(instance,map);

  //獲取參數名列表

  List<String>list=getParametersName();

  int i=1;

  String primaryKeyValue=null;

  for(String s:list){

  for(Field e:entity.getFields()){

  if(e.getName().equals(s)){

  e.setAccessible(true);

  ps.setObject(i,e.get(instance));//賦參數值

  if(s.equals(primaryKey))

  primaryKeyValue=(String)e.get(instance);

  i++;

  }

  }

  }

  return getAutoParams();

  }

  DWAS系統著重關注業務處理的本質,并將用戶請求形式的外在改變與業務處理的本質特征統一起來,從而實現系統處理的優化。從實踐應用情況來看,得到了用戶和開發人員的肯定,效果良好。

  參考文獻

  [1] OSGi Alliance corporation. OSGi Technology[EB/OL]. http://www.osgi.org/osgi_technology/index.asp section=2.

  [2] Announcing the ADVANCED ENCRYPTION STANDARD (AES). Federal information processing standards publication 197[C]. United States National Institute of Standards and Technology(NIST), 2001.

  [3] 陳岡.Java開發入行真功夫[M].北京:電子工業出版社,2009.

  [4] 于慶梅.OSGi平臺服務動態更新的發布/訂閱策略[J].計算機應用與軟件,2012(6):17-32.

  [5] 黃晗.基于R-OSGi的平臺容錯架構設計與實現[J].計算機與現代化,2013(9):66-73.

  [6] 龍軍,趙貴虎,張祖平.一種支持動態管理的SCA服務模型研究[J].計算機科學,2012(12):114-117.

  [7] 張語涵,劉淑華,周永鑫.Java Web應用中錯誤和異常處理方法研究[J].現代計算機(專業版),2013(23):61-64.

  [8] 張耀民.SSH框架在Web項目開發中的構建和應用實踐[J].微型機與應用,2013(15):18-21.

  [9] 司飆.MVC模式下的考試系統建模研究[J].計算機科學,2013(S1):403-406.

  [10] 張原,張昭,劉蕊.基于MVC設計模式的虛擬實驗平臺模塊化設計[J].計算機工程與科學,2013(8):125-129.

  [11] 梁員寧,陳喆,謝立軍.Web服務組合的可靠性動態評估模型[J].計算機應用研究,2012(3):955-960.

  [12] 劉淑華.J2EE項目中一種新的錯誤處理方法[J].計算機應用與軟件,2013(7):143-145.

  [13] 黃永慧,陳程凱. HTML5在移動應用開發上的應用前景[J].計算機技術與發展,2013(7):207-210.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
免费在线观看成人av| 欧美三级午夜理伦三级中文幕| 91久久国产综合久久蜜月精品 | 亚洲国产精品久久久| 国产色综合天天综合网| 国产精品嫩草99av在线| 欧美日韩国产影院| 欧美顶级少妇做爰| 欧美成人69av| 女人天堂亚洲aⅴ在线观看| 久久夜色精品国产亚洲aⅴ| 久久成人综合视频| 欧美中文字幕不卡| 久久av资源网站| 欧美一区二区三区日韩视频| 欧美一级理论片| 午夜免费在线观看精品视频| 亚洲欧美伊人| 欧美有码在线视频| 久久精品免视看| 久久精品国产清自在天天线| 久久福利视频导航| 久久久精品日韩欧美| 久久久久国产免费免费| 久久久国产成人精品| 久久久噜噜噜久久| 久久亚洲私人国产精品va媚药| 久久婷婷成人综合色| 久久婷婷国产综合精品青草 | 久久免费视频在线观看| 久久久免费观看视频| 久久综合网色—综合色88| 嫩模写真一区二区三区三州| 欧美成年人网站| 欧美日韩国产专区| 国产精品h在线观看| 国产精品亚洲第一区在线暖暖韩国| 国产精品欧美一区喷水| 国产欧美日韩一区二区三区在线 | 洋洋av久久久久久久一区| 在线亚洲成人| 亚洲综合色在线| 欧美在线黄色| 美女主播精品视频一二三四| 欧美区国产区| 国产精品美女久久久免费| 国产欧美一二三区| 黄色成人小视频| 亚洲区在线播放| 亚洲网友自拍| 久久9热精品视频| 亚洲精品美女在线观看| 亚洲性xxxx| 欧美资源在线观看| 美女国内精品自产拍在线播放| 欧美日本高清视频| 国产精品美女999| 黄色精品一区二区| 亚洲九九精品| 亚洲欧洲99久久| 亚洲美女免费精品视频在线观看| 亚洲欧美网站| 免费不卡中文字幕视频| 欧美午夜女人视频在线| 国产一区二区视频在线观看| 亚洲片在线资源| 小黄鸭精品aⅴ导航网站入口| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲第一黄色网| 亚洲视频在线观看视频| 亚洲国产专区校园欧美| 亚洲综合色自拍一区| 免费短视频成人日韩| 国产精品久久久久久久久果冻传媒 | 99成人在线| 久久电影一区| 亚洲天堂偷拍| 美腿丝袜亚洲色图| 国产精品久久久久77777| 伊人久久大香线| 正在播放欧美视频| 亚洲精品久久久久久下一站 | 欧美久久电影| 国产日韩专区| 夜夜夜精品看看| 亚洲国产精品99久久久久久久久| 亚洲嫩草精品久久| 欧美精品色网| 韩日欧美一区二区| 亚洲一品av免费观看| 日韩一级二级三级| 久久久之久亚州精品露出| 国产精品护士白丝一区av| 亚洲国产精品久久久久秋霞不卡 | 欧美在线免费| 亚洲在线观看免费| 欧美成人伊人久久综合网| 国产亚洲成精品久久| 亚洲一区二区不卡免费| 日韩一区二区精品| 麻豆av一区二区三区久久| 国产欧美视频在线观看| 一级日韩一区在线观看| 亚洲伦理在线| 老司机免费视频一区二区| 国产伦精品一区二区三区免费迷| 一本色道久久| 99精品99| 欧美精品一区二区高清在线观看| 在线看片第一页欧美| 欧美一区二区精品| 欧美一区视频| 国产精品欧美久久| 亚洲天堂网在线观看| 一本高清dvd不卡在线观看| 欧美sm视频| 国内伊人久久久久久网站视频| 亚洲影院免费观看| 亚洲女同性videos| 欧美午夜宅男影院| 99精品视频一区| 一区二区三区视频观看| 欧美精品一区在线播放| 亚洲国产精品毛片| 亚洲日本欧美| 欧美国产精品久久| 亚洲人成小说网站色在线| 亚洲精品免费在线播放| 欧美成人免费全部| 最新中文字幕亚洲| 99国产精品99久久久久久| 欧美激情亚洲| 亚洲国产小视频| 夜夜嗨av一区二区三区中文字幕 | 一本久道久久综合婷婷鲸鱼| 亚洲一区二区黄| 欧美日韩在线播放三区四区| 亚洲乱码国产乱码精品精天堂 | 久久精品一区蜜桃臀影院| 久久免费国产精品| 在线观看成人网| 亚洲国产日韩精品| 欧美激情亚洲国产| 夜夜狂射影院欧美极品| 亚洲欧美在线观看| 国产欧美日韩三区| 久久www成人_看片免费不卡| 久久综合色8888| 亚洲国产综合视频在线观看 | 夜色激情一区二区| 欧美色中文字幕| 亚洲校园激情| 久久精品国产精品亚洲综合| 美女视频黄 久久| 亚洲黄色视屏| 亚洲一区二区三区免费在线观看 | 国产欧美日韩视频| 久久国产99| 欧美激情第五页| 一本一本久久a久久精品综合妖精| 午夜影视日本亚洲欧洲精品| 国产一区香蕉久久| 亚洲国产综合91精品麻豆| 欧美日韩国产精品专区| 亚洲午夜av在线| 久久久国产成人精品| 亚洲国产三级网| 亚洲欧美精品伊人久久| 国产一区在线看| 亚洲精品一区二区三区福利| 国产精品高清网站| 亚洲春色另类小说| 欧美日韩亚洲一区在线观看| 亚洲欧美色婷婷| 欧美精品乱人伦久久久久久 | 欧美伊久线香蕉线新在线| 在线观看av一区| 亚洲欧美福利一区二区| 一区二区在线看| 亚洲一区二区网站| 黄色成人小视频| 亚洲影视综合| 樱桃视频在线观看一区| 亚洲免费影院| 在线看日韩欧美| 性做久久久久久久免费看| 亚洲春色另类小说| 性视频1819p久久| 亚洲级视频在线观看免费1级| 午夜精品视频网站| 在线日韩日本国产亚洲| 西西人体一区二区| 91久久久久| 久久伊人一区二区| 国产精品99久久久久久久久久久久 | 欧美a级一区二区| 亚洲欧美日韩一区在线| 欧美精品亚洲精品| 亚洲高清久久网| 国产精品你懂的在线|