《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種動態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亚洲国产精品_日韩亚洲一区二区
亚洲一二三四区| 亚洲精品美女| 尤物九九久久国产精品的分类| 欧美视频一区二区三区在线观看 | 亚洲一区三区电影在线观看| 亚洲精品国产精品国自产观看浪潮 | 一区二区三区毛片| 亚洲人妖在线| 91久久在线| 亚洲人成网站在线播| 亚洲人成在线影院| 亚洲巨乳在线| 一区二区三区精密机械公司| 一区二区三区www| 亚洲图片欧洲图片av| 亚洲一区精彩视频| 亚洲欧美日本国产有色| 亚洲欧美一区二区激情| 午夜精品久久久久久久99水蜜桃| 亚洲欧美日韩第一区| 欧美一级理论片| 欧美专区日韩视频| 久久免费高清视频| 久久一区二区三区av| 久热精品在线| 欧美成人精品在线视频| 欧美久久电影| 欧美日韩一区二区欧美激情| 欧美性视频网站| 国产日韩欧美亚洲一区| 国内久久精品视频| 亚洲高清在线| av成人动漫| 香蕉免费一区二区三区在线观看| 久久国产精品久久精品国产| 亚洲精品三级| 亚洲在线中文字幕| 久久九九免费| 欧美电影在线免费观看网站| 欧美日韩午夜剧场| 国产乱码精品| 亚洲第一伊人| 国产精品99久久不卡二区| 午夜精品久久久久久99热| 亚洲高清免费在线| 99re6这里只有精品| 亚洲欧美99| 久久久精品国产免大香伊| 欧美国产日产韩国视频| 欧美三级视频在线| 国产亚洲a∨片在线观看| 依依成人综合视频| 999亚洲国产精| 性色av一区二区三区| 亚洲精品国精品久久99热| 亚洲一区二区高清视频| 久久精品亚洲一区| 欧美激情视频一区二区三区免费 | 午夜综合激情| 亚洲人成欧美中文字幕| 亚洲在线视频免费观看| 另类av导航| 欧美午夜剧场| 国产午夜精品视频免费不卡69堂| 最近中文字幕日韩精品 | 欧美一级在线播放| 久久这里只有精品视频首页| 欧美日韩大片一区二区三区| 国产农村妇女精品一二区| 亚洲国产精品久久久久久女王| 亚洲综合第一| 亚洲精选久久| 久久精品成人| 欧美日韩在线影院| 伊人成综合网伊人222| 亚洲视频大全| 亚洲欧洲日本mm| 午夜精品视频在线观看一区二区 | 欧美性色综合| 亚洲第一色在线| 欧美一级午夜免费电影| 99热免费精品| 久热精品视频在线| 国产精品一二一区| 亚洲毛片一区| 亚洲人成在线播放| 久久噜噜亚洲综合| 国产九区一区在线| 一本色道久久综合亚洲91| 亚洲国产欧美在线| 久久成人亚洲| 国产精品日韩欧美一区二区三区 | 99精品国产热久久91蜜凸| 亚洲高清不卡| 久久精品国产精品| 国产精品美女久久福利网站| 亚洲精品午夜| 亚洲精品老司机| 久久久亚洲午夜电影| 国产精品亚发布| 中文精品视频一区二区在线观看| 亚洲精品视频在线看| 麻豆91精品91久久久的内涵| 国产亚洲日本欧美韩国| 亚洲制服av| 99这里只有精品| 欧美福利小视频| 精品白丝av| 亚洲国产精品久久久| 久久久水蜜桃| 国产在线观看一区| 欧美在线电影| 久久久久久久久久久成人| 国产麻豆精品theporn| 亚洲资源在线观看| 午夜精品久久久久| 国产精品一区二区三区四区| 亚洲一区二区在线播放| 亚洲午夜高清视频| 欧美日本一区二区三区| 亚洲清纯自拍| 99精品免费视频| 欧美日韩国产a| 亚洲美女啪啪| 在线视频亚洲一区| 欧美午夜电影在线观看| a4yy欧美一区二区三区| 亚洲图片在线| 国产精品免费在线| 亚洲欧美日本精品| 久久精品99| 精品91久久久久| 亚洲欧洲日产国产综合网| 欧美激情视频在线免费观看 欧美视频免费一 | 一区二区三区视频在线观看| 欧美日韩第一页| 日韩手机在线导航| 亚洲尤物在线| 国产午夜精品一区二区三区欧美| 久久狠狠亚洲综合| 裸体一区二区三区| 亚洲高清久久网| 亚洲视频你懂的| 国产精品久久久久婷婷| 亚洲欧美日韩一区二区三区在线观看| 欧美一区三区二区在线观看| 国产日韩在线视频| 久久成人人人人精品欧| 蜜乳av另类精品一区二区| 亚洲人线精品午夜| 亚洲视频免费| 国产亚洲高清视频| 亚洲国产精品一区制服丝袜| 欧美精品一区二| 一区二区三区色| 久久精品99久久香蕉国产色戒| 狠狠色伊人亚洲综合网站色| 亚洲区欧美区| 欧美日韩精品在线观看| 亚洲尤物在线视频观看| 久久欧美肥婆一二区| 亚洲经典在线| 欧美一级夜夜爽| 亚洲电影下载| 亚洲在线成人| 精品成人在线| 亚洲一区二区毛片| 韩日精品在线| 日韩亚洲欧美高清| 国产欧美精品日韩精品| 亚洲国产综合在线| 欧美天堂亚洲电影院在线观看 | 国产精品久久激情| 久久精品官网| 欧美日韩亚洲一区二| 性做久久久久久| 欧美精品一区二区三区很污很色的| 亚洲一本视频| 欧美成人高清视频| 亚洲自拍偷拍麻豆| 欧美成人性生活| 亚洲尤物在线视频观看| 欧美激情精品久久久久久| 午夜久久久久久| 欧美激情综合五月色丁香| 亚洲欧洲av一区二区| 欧美日韩国产成人在线91| 午夜久久一区| 欧美日韩一区二区国产| 久久精品导航| 国产精品久久久久7777婷婷| 亚洲激情另类| 国产日产亚洲精品| 99国产精品久久久久久久成人热| 国产欧美一区二区白浆黑人| 一区二区三区国产| 在线看日韩欧美| 久久精品国产亚洲aⅴ| 亚洲视屏在线播放| 欧美搞黄网站|