国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于 SSH框架的社區(qū)管理信息系統(tǒng)設(shè)計

2010-11-02 02:13:05楊鐘鳴
關(guān)鍵詞:組件架構(gòu)框架

楊鐘鳴

(東華理工大學信息與電子工程學院,江西撫州 344000)

基于 SSH框架的社區(qū)管理信息系統(tǒng)設(shè)計

楊鐘鳴

(東華理工大學信息與電子工程學院,江西撫州 344000)

SSH適用于涉及業(yè)務較多的中大型企業(yè)級開發(fā)。對于一些小型的項目、簡單的應用,使用 JSP以及 Servlet等技術(shù)便足可以完成。但對于中大型項目,其需求變更頻繁、業(yè)務流程復雜、要求的維護性能高。根據(jù)這些特點設(shè)計了社區(qū)管理信息系統(tǒng),并從視圖層、數(shù)據(jù)層和業(yè)務層分別探討了系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)。該系統(tǒng)的后臺設(shè)計通過 Spring對 Struts和 Hibernate的集成完成,前臺Web頁面運用具有Ajax技術(shù)的 Ext的 js框架完成。得出的結(jié)果充分驗證了 SSH對這類系統(tǒng)的可擴展性以及可維護性,也更加肯定了 SSH對于此類項目的適用性。

SSH;企業(yè)級開發(fā);可擴展性;可維護性;適用性

隨著 J2EE的發(fā)展,J2EE已經(jīng)成為主流的企業(yè)級應用解決方案,但是 J2EE編程正變得越來越復雜。為了降低成本,加快應用程序的開發(fā)和設(shè)計,J2EE平臺提供了一種基于組件的方法。對于一個應用模型,根據(jù)功能將其應用邏輯劃分成為組件。其中包括 Struts,Spring,Hibernate等架構(gòu),通過這些架構(gòu)整合起來可以得到一個開發(fā)靈活、低耦合及易于維護的Web信息系統(tǒng)的完整解決方案。本系統(tǒng)正是運用 Struts1.3,Spring2.0和 Hibernate 3.0以及前臺的 Ext js框架。Struts用于從頁面表單獲取數(shù)據(jù)并調(diào)用業(yè)務層進行數(shù)據(jù)的各種業(yè)務處理;Hibernate用于 dao層與數(shù)據(jù)庫進行交互,對數(shù)據(jù)進行增刪改查;Spring則是封裝 Hibernate和 Struts,以便對二者進行管理,提高應用效率 (諶湘倩等,2009)。

1 系統(tǒng)結(jié)構(gòu)

B/S架構(gòu)的社區(qū)管理信息系統(tǒng)以基本人口和房屋數(shù)據(jù)為基礎(chǔ),通過消息傳遞機制、事物管理機制、工作流流程等建立起一個可擴展、集成數(shù)據(jù)和應用的系統(tǒng)結(jié)構(gòu)。它將社區(qū)各機構(gòu)的多項工作集成起來,以進行更為有效的業(yè)務處理。

系統(tǒng)分為市政管理、社會穩(wěn)定、市民呼聲等功能模塊 (圖 1)。其中,市政管理模塊包括對商鋪小區(qū)、市場攤位、市政設(shè)施等進行相應信息管理,街道內(nèi)各個居委對本地街面環(huán)境、房屋搭建的問題反映;社會穩(wěn)定又分為綜治和信訪穩(wěn)定等子模塊。綜治模塊是對某些高危人群、小區(qū)、四小行業(yè)房屋租賃等特定人群和地點進行監(jiān)控管理;信訪穩(wěn)定模塊則是通過網(wǎng)絡辦公實現(xiàn)信訪辦的日常工作;市民呼聲模塊是對市民通過各種渠道向政府提出意見的收集,其中包括短信、電話、郵件以及網(wǎng)絡意見收集。整個系統(tǒng)對各類人群、企業(yè)單位等方面進行綜合統(tǒng)一管理,使其更加具有“綜合服務”的特性。

圖 1 系統(tǒng)結(jié)構(gòu)圖Fig.1 Picture of system structure

2 系統(tǒng)主要使用的技術(shù)

社區(qū)管理信息系統(tǒng)是一個應用平臺,也是一個基于 JSON和Web Services數(shù)據(jù)交換體系。后臺以SSH框架管理各層,前臺以 ExtJs框架將 html,css以及Ajax進行封裝。

2.1 SSH(structs+hibernate+spring)框架簡介

Hibernate是一個非常優(yōu)秀的 ORM(Object-RelationMapping,簡稱 ORM)輕量級框架。眾所周知,內(nèi)存不能永久保存數(shù)據(jù)。要將數(shù)據(jù)永久保存只有將數(shù)據(jù)放入數(shù)據(jù)庫中進行持久化。目前關(guān)系數(shù)據(jù)庫仍然是使用最為廣泛的數(shù)據(jù)存儲庫。關(guān)系數(shù)據(jù)庫是非面向?qū)ο蟮?。OOP是當今的主流,JAVA是一種非常強大的面向?qū)ο蟮恼Z言。因此將兩種思想結(jié)合起來將大大提高軟件開發(fā)的效率。而 Hibernate框架提供了這種將面向?qū)ο蟮某绦蛟O(shè)計(OOP)與關(guān)系數(shù)據(jù)庫相互映射的機制。它把對象模型表示的對象映射到基于 SQL的關(guān)系模型基礎(chǔ)上,在 JDBC的方式上進行輕量級對象封裝。同時Hibernate還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,減少使用 SQL和 JDBC訪問數(shù)據(jù)庫的時間 (孫衛(wèi)琴,2005)。

Hibernate對 JDBC做了一定的封裝,使得 DAO層的代碼得到充分簡化 (董洪彬,2004)。但對于某些特定的代碼,如 session的生成、事務的打開等,調(diào)用次數(shù)依然頻繁。但在 Spring管理下,Hibernate又得到了進一步的封裝。而且 spring對 Hibernate是輕量級、非侵入式的封裝,使得編程效率更加提高(朱慶偉等 ,2004)。

Spring是一個開源框架,是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個組件,同時為 J2EE應用程序開發(fā)提供集成的框架。使應用程序的各個部分之間盡量形成一種松耦合的結(jié)構(gòu),使得其有更大的靈活性 (高昂等,2005)。

Struts框架是基于MVC模式的框架,是一個免費開源的 Web層的應用框架,主要采用 JSP與Servlet技術(shù)實現(xiàn),把 Servlet,JSP、自定義標簽和信息資源整合到一個統(tǒng)一的框架中,關(guān)注于控制器的流程而開發(fā)人員只需開發(fā)相應的 Action類和相應的 JSP組件等,就可以套用 Struts框架,進行項目的開發(fā)。

2.2 ExtJs框架簡介

ExtJs是一種主要用于創(chuàng)建前端用戶界面、用javascript編寫的、與后臺技術(shù)無關(guān)的前端 ajax框架。ExtJs初期僅是對 Yahoo!U I的對話框擴展,后來逐漸有了自己的特色,深受網(wǎng)友的喜愛。發(fā)展至今,Ext除 YU I外還支持 Jquery,Prototype等的多種JS底層庫,讓大家自由地選擇。該框架完全基于純Html/CSS+JS技術(shù),提供豐富的跨瀏覽器 U I組件,靈活采用 JSON/XML數(shù)據(jù)源開發(fā),使得服務端表示層的負荷真正減輕,從而達到客戶端的MVC應用(衛(wèi)軍等 ,2009)。

2.3 三層架構(gòu)

在軟件體系架構(gòu)設(shè)計中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu) (楊湧等,2008)。通常意義上的三層架構(gòu)就是將整個業(yè)務應用劃分為:表現(xiàn)層、業(yè)務層和持久層 (圖 2)。區(qū)分層次的目的是為了實現(xiàn)“高內(nèi)聚,低耦合”的結(jié)構(gòu)特點。

圖 2 三層架構(gòu)圖Fig.2 picture of three-tier architecture

(1)表示層用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。

(2)業(yè)務層是針對具體問題的操作,也可以說是對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務邏輯處理。

(3)持久層所做事務直接操作數(shù)據(jù)庫,即針對數(shù)據(jù)的增添、刪除、修改、更新、查找等。

從圖 2中可以看出 Struts作用在表示層。ActionFormBean接收網(wǎng)頁中表單提交的數(shù)據(jù),然后通過 Action進行處理,再轉(zhuǎn)發(fā)到對應的網(wǎng)頁。Hibernate主要負責持久層的工作,以對象的形式對數(shù)據(jù)庫進行增加刪除修改以及用其特有的 Query或其它查詢語言進行查詢操作。采用 Hibernate作為持久層技術(shù)的最大的好處在于:可以完全以面向?qū)ο蟮姆绞竭M行系統(tǒng)分析、系統(tǒng)設(shè)計。Spring負責業(yè)務層管理,為表示層提供統(tǒng)計的調(diào)用接口,封裝持久層的 DAO,與 POJO進行無縫的鏈接。此外,Spring同時對這三層進行一個無縫的良好的整合。而這種功能的實現(xiàn)也正是 Srping這種框架核心思想——控制反轉(zhuǎn)的一種體現(xiàn)。

3 系統(tǒng)分析

3.1 業(yè)務流程的解析

系統(tǒng)內(nèi)各種業(yè)務不盡相同,以煙草專賣商戶管理為例。當業(yè)務人員錄入一個煙草專賣商戶時,輸入其身份證號時,系統(tǒng)會調(diào)用人口庫進行查找。若確有此人,則調(diào)出此人的基本信息給該業(yè)務人員查看,以便其繼續(xù)錄入煙草商的其它信息。若無此人,則將其存儲于人口臨時表中。具體業(yè)務流程如圖 3。當信息錄入完畢后,數(shù)據(jù)經(jīng)前臺 form表單轉(zhuǎn)到由 Struts控制的視圖層。在視圖層,由MyEclipse提供的 Hibernate反轉(zhuǎn)機制生成的并與數(shù)據(jù)庫關(guān)聯(lián)的POJO(plain object Java object)類ToNoCardSaler-Info將表單信息保存并帶入業(yè)務層。業(yè)務層只關(guān)心數(shù)據(jù)業(yè)務的操作,對數(shù)據(jù)庫的操作則是調(diào)用相應的DAO層來實現(xiàn)。DAO層則是完全與數(shù)據(jù)庫進行交互。當DAO層進行數(shù)據(jù)庫的操作時,利用 Spring提供的 HibernateDaoSupport類管理 DAO層,建立DAO層的實現(xiàn)類 ToNoCardSalerDao Impl,最終由 Hibernate本身的機制生成 SQL語句,將數(shù)據(jù)保存到數(shù)據(jù)庫中。

在錄入煙草專賣商戶數(shù)據(jù)的同時,相關(guān)領(lǐng)導既可查看所有煙草商戶的信息,也可通過不同的查找條件,查找出某個或某些商戶的信息。查找的條件也經(jīng)表單進入視圖層、業(yè)務層,最終進入 DAO層。由 Hibernate本身特有的 HQL語句,將結(jié)果查詢出來。生成的結(jié)果保存在相應的集合中,傳入前臺,顯示在列表中。

3.2 實現(xiàn)技術(shù)及其分析

3.2.1 實現(xiàn)技術(shù)

業(yè)務層是 Spring通過控制反轉(zhuǎn)將二者的接口注入至 Struts的 Action中。在 Spring的配置文件applicationContext.xml中,在 Action中注入業(yè)務層的代碼如下:

圖 3 業(yè)務流程圖Fig.3 picture ofBusiness Process

3.2.2 技術(shù)分析

從配置文件中可以看出,程序中的依賴關(guān)系為:Action依賴業(yè)務層,業(yè)務層依賴 DAO層,DAO層依賴 SessionFactory,SessionFactory依賴 Data-Source。Spring能有效地組織 J2EE應用各層的對象。不管是控制層的 Action對象,還是業(yè)務層的Service對象,還是持久層的 DAO對象,都可在Spring的管理下有機地協(xié)調(diào)、運行。Spring將各層的對象以松耦合的方式組織在一起,Action對象無須關(guān)心 Service對象的具體實現(xiàn),Service對象無須關(guān)心持久層對象的具體實現(xiàn),各層對象的調(diào)用完全面向接口。當系統(tǒng)需要重構(gòu)時,代碼的改寫量將大大減少。

從中可以看出,Spring貫穿表現(xiàn)層、業(yè)務層、持久層,以高度的開發(fā)性與它們無縫整合。這體現(xiàn)了Spring的一種非常重要的思想——控制反轉(zhuǎn) (Inversion of Control),也稱為依賴注入 (Dependency Injection)。

I

OC的思想來源于一種好萊塢式的原則——“Don’t call us.We will call you.”即“不要來找我們,我們會主動來找你的”。 IOC充分的體現(xiàn)了“好萊塢”原則。其核心思想在于提供一個更加簡單的機制來規(guī)定組件之間的依賴關(guān)系 (一般涉及到對象的合作),并且在它們生命周期中對依賴關(guān)系進行管理。 IOC提供了這樣的服務,使一個組件能夠在它的生命周期中訪問它的依賴和服務。當然, IOC思想的前提是養(yǎng)成面向接口編程的習慣,而非面向?qū)崿F(xiàn)類。

I

OC是一種設(shè)計模式,系統(tǒng)中通過引入實現(xiàn)了I OC模式的 IOC容器,即可由 IOC容器來管理對象的生命周期、依賴關(guān)系等,從而使得應用程序的配置和依賴性規(guī)范與實際的應用程序代碼分開。其中一個特點就是通過文本的配件文件進行應用程序組件間相互關(guān)系的配置,而不用重新修改并編譯具體的代碼,使得業(yè)務組件可復用,也降低了業(yè)務和框架的耦合。

可以把 IOC模式看做是一個升華的工廠模式,把 IOC看作是一個大工廠,只是這個大工廠里要生成的對象都是在 XML文件中定義的,然后利用 Java的“反射”編程,根據(jù) XML中給出的類名生成相應的對象。從實現(xiàn)來看, IOC是把以前在工廠方法里寫死的對象生成代碼,改變?yōu)橛?XML文件來定義,也就是把工廠和對象生成這兩者獨立分隔開來。這么做的目的就是提高靈活性和可維護性(Walls et al.,2006)。

在小型 Web應用當中,JDBC就已經(jīng)很適用了。而 SSH三層架構(gòu)并不是十分適合此類項目。因為 SSH是以適當犧牲運行效率的代價,來換取程序的可擴展以及可維護性。因而越大型越復雜的項目,SSH就越適合。而 Spring當中的 IOC思想,則更加證明了這點。因為它使得主體與客體的關(guān)系由直接改為間接,且增加一個第三方來直接控制主體和客體之間的關(guān)系。

4 結(jié)束語

社區(qū)管理信息系統(tǒng)以 Spring為核心,并通過Spring對 Hibernate與 Struts進行依賴注入,將后兩者很好地集成在 Spring中。SSH框架的綜合使用,使得開發(fā)人員可以編寫簡潔明了的代碼。在大型Web系統(tǒng)項目中,合理利用各種框架技術(shù)能夠有效的減少系統(tǒng)各模塊的耦合性。采用框架技術(shù),不但可以方便大型項目程序員之間的分工協(xié)作,減少程序代碼的耦合性,還可以促使開發(fā)人員養(yǎng)成良好的開發(fā)習慣,培養(yǎng)團隊協(xié)作能力。

諶湘倩,狄文輝,孫冬.2009.基于 SSH框架與 AJAX技術(shù)的 Java Web應用開發(fā)[J].計算機工程與設(shè)計,30(10):37-42.

董洪彬,竇延平.2004.利用 Hibernate的 J2EE數(shù)據(jù)持久層的解決方案[J].計算機工程,(30):36-39.

高昂,衛(wèi)文學.2005.基于 Hibernate與 Struts框架的數(shù)據(jù)持久化應用研究[J].計算機應用,25(12):2817-2819.

孫衛(wèi)琴.2005.精通 Hibernate:Java對象持久化技術(shù)詳解[M].北京:電子工業(yè)出版社:10-13.

衛(wèi)軍,夏慧軍,孟臘春,等.2009.ExtJS Web應用程序開發(fā)指南[M].北京:機械工程出版社:9-14.

楊湧,付江輝,李麗華.2008.基于MSP430的嵌入式智能防盜監(jiān)控系統(tǒng)的設(shè)計[J].東華理工大學學報:自然科學學報,32(12):192-196.

朱慶偉,吳宇紅.2004.一種對象/關(guān)系映射框架的分析和應用[J].電子科技(1):34-36.

Walls C,Breidenbach R.2006.Spring in Action中文版[M].北京:人民郵電出版社:76-80.

Design of CommunityManagement I nformation System Based on SSH Framework

YANG Zhong-ming
(Electronic Engineering,East China Institute of Technology,Fuzhou,JX 344000,China)

SSH applied in cases involving much business in the large-scale enterprise development.For some s mall projects and s imple application,which use JSP and Servlet technologieswill be enough to complete.But for medium and large projects,their needs change frequently,complex business processes,required to maintain high perfor mance.According to these features the design of management information platfor m for the community,and from that layer,business layer and data layer are discussed and the key technology.The background of the system design of Struts and Hibernate through Spring on the integration of complete,frontWeb page usingAjax technologies with the js framework Ext completed.Results fully verify the SSH on the scalability of such systems,and maintainability,and more certainly the SSH application for the applicability of such projects.

SSH;enterprise development;scalability;maintainability;adaptability

TP393

:A

:1674-3504(2010)04-379-05

10.3969/j.issn.1674-3504.2010.04.013

2010-06-24

楊鐘鳴 (1985—),男,工學碩士,主要研究方向:分布式數(shù)據(jù)庫與數(shù)據(jù)挖掘。

猜你喜歡
組件架構(gòu)框架
基于FPGA的RNN硬件加速架構(gòu)
無人機智能巡檢在光伏電站組件診斷中的應用
能源工程(2022年2期)2022-05-23 13:51:50
框架
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應用和實踐
汽車工程(2021年12期)2021-03-08 02:34:30
廣義框架的不相交性
新型碎邊剪刀盤組件
重型機械(2020年2期)2020-07-24 08:16:16
U盾外殼組件注塑模具設(shè)計
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
電信科學(2017年6期)2017-07-01 15:45:17
WTO框架下
法大研究生(2017年1期)2017-04-10 08:55:06
一種基于OpenStack的云應用開發(fā)框架
高要市| 论坛| 昭通市| 铁岭县| 聊城市| 全椒县| 平乐县| 清涧县| 湄潭县| 遂平县| 辽源市| 台江县| 泗洪县| 大渡口区| 吴川市| 彩票| 丰城市| 金乡县| 梅河口市| 绵阳市| 阜新| 洛隆县| 保亭| 澳门| 拉萨市| 福建省| 安徽省| 清水河县| 乐平市| 鹿泉市| 新宾| 汝阳县| 健康| 开平市| 拉孜县| 平陆县| 长沙市| 湘潭市| 冷水江市| 贵定县| 楚雄市|