999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC的食品安全監控系統的研究與設計

2008-12-31 00:00:00陳良臣孫功星閆曉飛
計算機應用研究 2008年7期

摘 要:研究了MVC的設計思想、設計方法、擴展以及Struts和Spring等主要框架,結合食品衛生安全實際業務流程以及Struts框架和Spring框架的整合技術,最后設計了一種基于MVC設計模式的食品安全監控系統,保證了系統的高效,結構清晰,可擴展性和可維護性。

關鍵詞:模型—視圖—挖制器模式; 食品安全監控系統; Struts框架; Spring框架

中圖分類號:TP391 文獻標志碼:A

文章編號:1001-3695(2008)07-2091-03

Research and design of food secure monitor system based on MVC

CHEN Liang-chen1, SUN Gong-xing1, ZHAO Rui2,YAN Xiao-fei1,WU Huan1

(1.Computing Center, Institute of High Energy Physics, Chinese Academy of Sciences, Beijing 100049, China; 2.School of Computer Science Technology, North China Electric Power University, Beijing 102206, China)

Abstract:This paper studied the MVC design thinking and methods, expansion, Struts framework and the Spring framework, with the actual business processed of food secure minitor system andthe integration technology of Spring framework and Struts framework, and then presented a design of the food secure monitor system based on the MVC design pattern, and ensuredthe system’s efficiency, a clear structure, extensibility and maintainability.

Key words:MVC(model/ view/ controller) pattern; food secure monitor system; Struts framework; Spring framework



食品是人類賴以生存的物質基礎,食品安全關系到人類健康、社會穩定和經濟發展。食品安全是一個世界性的問題,其重要性不言而喻,而我國的食品安全的信息化現代化程度卻普遍落后,至今有關部門還處于手工操作階段,即使具有初步信息化手段的部門大多也采用傳統的C/S層次結構。食品安全由于其行業的特殊性,除了C/S模式固有的弊端之外,還存在如服務器數目過多、維護困難、實時性不高等問題。隨著加入WTO后,企業之間競爭越來越激烈,食品安全的信息化改造也迫在眉睫。基于上述情況,北京市工商局立項為首都食品衛生安全監控信息化平臺的課題開發,通過先進的信息管理平臺構建,提升北京市食品安全的管理層次和信息化水平。

為了使食品安全監控系統結構清晰,具有極其良好的可擴展性和可維護性,系統采用基于MVC設計模式。MVC模式是一個復雜的架構模式,其實現也顯得非常復雜,但是,多種設計模式結合在一起,使MVC模式的實現變得相對簡單易行,所以它也是國外用得很多的一種設計模式。MVC模式是一個很好創建軟件的途徑,它所提倡的一些原則,像內容和顯示互相分離可能比較好理解,最重要的是應該有多個視圖對應一個模型的能力。

1 MVC設計模式

1.1 MVC設計思想

MVC模式,即把一個應用的輸入、處理、輸出流程按照model、view、controller的方式進行分離,這樣一個應用被分為模型層、視圖層、控制層三層。

模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數據,所有其他依賴于這些數據的視圖都應反映這些變化。因此,無論何時發生了何種數據變化,控制器都會將變化通知所有的視圖,導致顯示的更新。這實際上是一種模型的變化—傳播機制。模型、視圖、控制器三者之間的關系和各自的主要功能如圖1所示。

1.2 MVC 設計方法

MVC模式將目標系統分為模型、視圖和控制器,并要定義描述三個部分之間通信的受限連接集合。相應地,MVC模式的設計包括四個部分:

a)MVC通信設計。在MVC模式中,模型、視圖和控制器這三個部分之間的通信是通過定義一個受限連接的集合來描述的。如圖l所示,可以采用帶箭頭連線對在各個部分之間進行的信息和控制傳遞作出形象的表示,并具體描述每個帶箭頭連線的含義。在實現上,模型、視圖和控制器這三個部分之間的通信是通過相應的模型對象、視圖對象和控制器對象之間的消息通信完成的。原則上應該盡量減少三個部分之間的結合,增強隔離性,使模型部分可以不必了解數據表示和與用戶交互的細節就可以完成數據處理,使視圖不必了解模型進行數據處理的內部實現就可以完成數據表示的功能。

這個受限連接的集合可以表示為{((Pl,P2),D,(M,…)),…t。其中:(P1,P2)表示從P1部分到P2部分的通信,P1,P2代表模型、視圖或控制器;D是對從P1~P2方向的通信的詳細描述;(M,…)表示一個有限方法集合,M是實現數據或控制傳遞的方法;((P1,P2),D,(M,…))三元組完整地描述了從一個部分到另一部分之間的通信。

b)模型的設計。模型是進行數據處理的地方,表達了實際應用中的業務處理邏輯。模型由許多模型對象及這些對象之間的各種各樣的關系構成。模型對象是根據問題域中的對象構建的,帶有一些有意義的屬性和方法,它們之間有這樣或那樣的關系,如一般特殊關系、整體部分關系、實例關聯、消息關聯等,它們互相交互完成數據處理功能。

c)視圖的設計。視圖是表達數據顯示邏輯的地方,通常完成或輔助完成GUI功能。視圖對象通常用于保存一些從模型對象中得到的信息,但視圖對象并不完全與模型對象相同。模型中有的對象在視圖中可能沒有,與模型對象對應的視圖對象一般也具有與之不同的屬性和方法;反之亦然。主要有兩種方式實現視圖對象:

(a)視圖對象是模型對象的一個代表,持有對相應模型對象的一個引用,相應的,在視圖對象的方法中通過該引用將調用均傳遞到模型對象中去。

(b) 視圖對象不必實現與模型對象相同的接口方法,它擁有的是一些屬性,反映了滿足顯示需要的數據,并可以從模型對象中獲取相應的值。

d)控制器的設計。控制器在用戶與視圖之間交互,完成接收用戶輸入并控制顯示流程轉換的功能,它充當了模型與視圖之間的去耦層。控制器中的對象用于控制對用戶輸入的響應方式,是根據對響應方式和響應流程的定義而獲得的對象。根據不同的MVC通信設計,控制器對象可以與模型對象、視圖對象進行不同形式的通信。針對不同的情況,控制器對象通常有兩種實現方法:

(a)采用的設計開發環境提供了對控制器的支持,對控制器對象的實現形式以及它與模型對象和視圖對象的交互方法提供了專門的支持。

(b)控制器作為模型與視圖之間的一個去耦層實現,表現為一些普通對象,但完成去耦功能。

1.3 MVC的擴展

通過在ASP.NET中的MVC模式編寫,具有極其良好的可擴展性。它可以輕松實現以下功能:實現一個模型的多個視圖;采用多個控制器;當模型改變時,所有視圖將自動刷新;所有控制器將相互獨立工作。

這就是MVC模式的好處,只需在以前的程序上稍作修改或增加新的類,即可輕松增加許多程序功能。以前開發的許多類可以重用,而程序結構根本無須改變,各類之間相互獨立,便于團體開發,提高開發效率。下面討論如何實現一個模型、兩個視圖和一個控制器的程序。其中模型類及視圖類根本無須改變,與前面的完全一樣,這就是面向對象編程的好處。對于控制器中的類,只需要增加另一個視圖,并與模型發生關聯即可。該模式下視圖、控制器、模型三者之間的示意圖如圖2所示。

2 MVC主要框架

MVC是應用很多的一種設計模式,多種設計模式結合在一起,使MVC模式的實現變得相對簡單易行。包括多種MVC框架:NStruts、Maverick.NET、MaverickLite、Ingenious MVC、Websharp、Struts、Webwork、Spring等。其中Struts和Spring是最具有代表性的兩種框架。

2.1 Struts框架

Struts是一個基于J2EE平臺的MVC框架,主要是采用Servlet和JSP技術來實現的。目標是利用Java技術開發基于MVC模式的Web應用提供一個標準模式,能充分滿足應用開發的需求,簡單移用,敏捷迅速。

Struts應用框架繼承了MVC的各項特性,并根據J2EE的特點,作了相應的變化和擴展。Struts如何實現MVC的設計模式,將三個方面結合在一起。其體系結構如圖3所示。

在Struts框架中包含很多組件,如Action Servlet、Action、RequestProcessor、Action Mapping、Action Forward、ActionForm。這些組件是Struts應用框架實現的關鍵。表1列出了Struts的核心類。

2.2 Spring框架

Spring Framework是由Rod Johnson創立的一個開放源碼的應用框架。它是輕量級的J2EE應用程序框架,旨在簡化J2EE的開發,降低J2EE項目實施的難度。Spring Framework的貢獻包括兩個部分,首先是為J2EE應用提供了一個優雅的基礎結構;另外它還提供了許多旨在幫助開發人員更好地使用J2EE相關技術的工具性支持。從結構上看,它分為七個模塊,其體系結構如圖4所示。

3 基于MVC的監控系統設計

通過信息化的手段,將日常監管工作中形成的信息統一歸集到系統中,方便查詢和管理。通過日常監管、監控點信息反饋和視頻監控等方式,采集食品安全信息,不僅可以掌握食品安全質量的總體形勢,而且可以發現潛在的食品安全風險因素,有針對性地開展預防性監管。

3.1 監控點的選取流程

監控點是對全市食品安全狀況實行全面管理和監控的重要措施,通過監控點的合理選取要能夠對全市的食品進行有效監控,能夠基本反映全市食品安全狀況,因此在監控點的設立方面需要體現出其代表性,即能夠全面反映全市食品安全狀況。

監控點的選取功能設計主要可分為三個方面:a)用戶選擇監控點選取功能,系統查詢臨時監控點表中是否有記錄。若有,則轉是否增加待選監控點。b)用戶輸入監控點總數(C)。系統首先進行統計:候選監控點總數(A)、每個地域候選監控點總數(B)。系統計算出每個地域的監控點總數=C×(B/A)。(按照公式計算)對每個地域根據業態隨機選取監控點,每種業態平均選取,并計算出每種業態占所有業態和所有級別的百分比,并保存在設置表中。其中對于具有分級信息的業態,才進行級別的平均選取,否則只以區域和業態為監控點選取條件。c)系統根據業態和級別的關系提供分級信息是否作為選取條件的選項。系統實現監控點選取程序流程如圖5所示。

3.2 Struts與Spring的整合

在整個軟件的設計中,主要以MVC的設計思想為主線,整個框架的工作流程以Struts框架為基礎,表示層主要由Struts框架完成,提供完善的標記庫,管理用戶的請求并作出相應的響應,提供一個控制器,調用相關的業務邏輯。而業務邏輯層和數據持久層則由Spring封裝,Spring作為一個工具庫,提供IOC支持、AOP支持、提供JDBC接口或其他映射等。這樣從框架的整體來看,Struts將貫穿Web應用的設計,它擔負頁面請求的接收、請求數據的規格統一、邏輯分發以及處理結果的返回這些縱向流程。Spring則在其中提供橫向的支持。Struts將請求分發到Action之后,由Spring接管,它負責封裝這些Bean,為它們提供IOC支持和事務管理機制,處理完成的結果返回交到Struts的控制器來處理。

在整個設計中,主要解決兩個問題:(a)在Struts框架中如何加載Spring的ApplicationContext,使Web容器在初始化時能夠自動獲得Spring設置的JavaBean對象;(b)Struts的控制器調用Action對象時,采取什么方法將Action對象納入到Spring容器的管理范圍,從而實現Struts與Spring的有效結合。

以下主要討論解決這兩個問題的途徑:

a)加載Spring的ApplicationContext。為了在Web容器初始化時能夠自動獲得Spring設置的JavaBean對象,可以在Struts的配置文件Struts-config.xml加入一個插件Context Loa-derPlugIn。該插件是Spring框架為了集成Struts實現的org.apache.struts.action.PlugIn接口的類,它在Struts應用啟動時被初始化,在應用關閉時被銷毀。

b)封裝Action實例。Spring在設計時就充分考慮到了與Struts的協同工作,通過內置的Struts Plug-in在兩者之間提供了良好的結合點;同時提供了一個DelegatingActionProxy方法。該方法繼承了Struts的Action類,實現了針對實際Action的調用代理,同時它作為Spring中的一個Bean,也可以享受到Spring提供的所有服務(依賴注入、實例管理、事務管理等)。當Struts加載對應的Action時,DelegatingActionProxy就根據傳入的path屬性,在WebApplicationContext中尋找對應的Bean,并將其實例返回給Struts。根據Struts的工作流程,當建立一個ActionServlet實例后,Struts會執行它默認的Process()方法,而這個方法實際上是調用了RequestProcessor類的Process()方法,在RequestProcessor類的processActionCreate()方法就是創建一個Action實例,把它保存在Action緩沖中。也就是在配置文件注冊的每一個ActionServlet實例都會由控制器將參數傳遞到RequestProcessor類的Process()方法。因此可以重新加載這個類。當實現RequestProcessor類時,調用修改后的processActionCreateQ方法,把ActionServlet實例納入Spring的容器管理。

這樣,當Struts加載某個Action時,DelegatingStruts根據傳入的Actionmapping屬性,在SpringContext中尋找對應的Bean,使它享受Spring提供的所有服務(實例管理、事務管理等),并將實例返回給Struts。

4 結束語

通過對食品安全監控系統的具體實現,利用MVC設計模式,將Struts MVC以及Spring中的Bean管理、事務管理融為一體,獲得一個全面的、成熟的、高效的、自頂而下的Web開發框架。該框架大大縮短了開發周期,減少代碼量,增強了系統的可維護性,同時利用系統分層的原理,在系統中引入數據持久層,通過數據持久層與數據庫交互,這樣使系統各個層次之間結構分明,各層之間的依賴性減少,有利于程序的可重用性。

MVC模式是一個復雜的架構模式,其實現也顯得非常復雜,但是,多種設計模式結合在一起,使MVC模式的實現變得相對簡單易行,所以需要總結出更多可靠的設計模式,使MVC模式運用更加方便有效。

參考文獻:

[1]任中方,張華,閆明松,等.MVC模式研究的綜述[J] .計算機應用研究,2004,21(1):1-4.

[2]陸榮幸,郁洲.J2EE平臺上MVC設計模式的研究與實現[J] .計算機應用研究,2003,20(3):144-146.

[3]姚延濤,王煜,沈鈞毅,等.采用增強的MVC模式提高面向對象應用能力[J] .小型微型計算機系統,2002,12(6):23-25.

[4]何成萬,余秋惠.MVC模型2及Struts軟件框架的研究[J] .計算機工程,2002,5(6):274-275.

[5]透明.Model-view-controller模式[J].程序員,2002,10(3):55-56.

[6]孫衛琴,李洪成.精通Struts:基于MVC的Java Web設計與開發[M] .北京: 電子工業出版社,2004:253-324.

[7]劉曉華,陳亞強.J2EE應用開發詳解[M].北京: 電子工業出版社,2004:204-315.

[8]SHALLOWAY A,JAMES R T.設計模式解析[M] .徐言聲,譯.北京: 人民郵電出版社,2006:245-356.

[9]DEACON J. Model-view-controller(MVC) architeture[EB/OL].(2000-08)[2005-04].http://www.jd1.co.uk/ridfings/MVC.pdf. 

[10]JAAKSI A.MVC++ application architecture[EB/OL].(2003).http://www.cs.uta.fi/jyrki /ohtdy/mvc/ppt.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”

主站蜘蛛池模板: 中文字幕欧美日韩| 亚洲国产天堂久久综合| 日韩av手机在线| 丁香婷婷在线视频| 欧美精品一二三区| 日本欧美中文字幕精品亚洲| 亚洲精品在线影院| 国产亚洲视频免费播放| 经典三级久久| 国产一二三区视频| 日韩久草视频| 精品国产美女福到在线不卡f| 五月丁香伊人啪啪手机免费观看| 永久免费精品视频| 国产精品视频白浆免费视频| 欧洲熟妇精品视频| 国产精品无码AⅤ在线观看播放| 亚洲天堂免费在线视频| 国产高清在线精品一区二区三区| 国产簧片免费在线播放| 免费无码AV片在线观看中文| 无码免费的亚洲视频| 成年人福利视频| 国产一区二区三区免费观看| 色视频国产| 免费毛片网站在线观看| 日日拍夜夜嗷嗷叫国产| 精品91自产拍在线| 四虎影视永久在线精品| 日韩欧美91| 免费看美女自慰的网站| 欧美另类一区| 国产欧美日韩在线在线不卡视频| 99久久精品免费看国产电影| 亚洲精品桃花岛av在线| AV熟女乱| 欧美人与性动交a欧美精品| 亚洲AV无码乱码在线观看裸奔| 国产在线麻豆波多野结衣| 99精品视频在线观看免费播放| 为你提供最新久久精品久久综合| 国产精品成人不卡在线观看| 欧美狠狠干| 亚洲永久色| 小蝌蚪亚洲精品国产| 国产高清在线观看91精品| 中文字幕 91| 午夜视频日本| 国产91av在线| 欧美一级夜夜爽| 亚洲午夜福利精品无码不卡| 在线视频精品一区| 狼友av永久网站免费观看| 亚洲香蕉久久| 91午夜福利在线观看精品| 亚洲日韩国产精品综合在线观看| 激情六月丁香婷婷| 国产成人一区在线播放| 免费av一区二区三区在线| 97成人在线观看| 思思热在线视频精品| 亚洲欧美激情小说另类| 试看120秒男女啪啪免费| 国产区免费| 国产玖玖视频| 亚洲精品无码专区在线观看| 欧美啪啪视频免码| 欧美不卡在线视频| 草草影院国产第一页| 制服丝袜 91视频| 欧美爱爱网| 久久网欧美| 亚洲精品成人片在线观看| 久久精品无码中文字幕| 欧美激情二区三区| 国产精品一区在线麻豆| 久操中文在线| 中文字幕欧美日韩| 九九视频免费在线观看| 9啪在线视频| 亚洲区第一页| 日本精品一在线观看视频|