版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本欄目責(zé)任編輯:聞翔軍數(shù)據(jù)庫與信息管理Computer Knowledge and Technology 電腦知識與技術(shù)第6卷第10期(2010年4月基于開源框架的內(nèi)容管理系統(tǒng)黃道斌,尹榮章,葉明全,朱金好(皖南醫(yī)學(xué)院計算機教研室,安徽蕪湖241000摘要:該文介紹了一個基于J2EE 開源框架設(shè)計的內(nèi)容管理系統(tǒng),針對內(nèi)容管理系統(tǒng)的可維護(hù)性和良好的擴展性問題,討論了Struts 、Spring 、Hibernate 等開源技術(shù)在解決這些問題的重要作用。關(guān)鍵詞:設(shè)計模式;MVC ;CMS中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(201010-2332-02Based on
2、 Open Source Framework's Content Management SystemHUANG Dao-bin,YIN Rong-zhang,YE Ming-quan,ZHU Jin-hao(Department of Computer,Wannan Medical College,Wuhu 241000,ChinaAbstract:This paper describes a content management system which is based on J2EE open-source framework.We discusses the Struts,Sp
3、ring,Hibernate and other open source technologies to solve these problems that the maintainability and good scalability of Content man -agement system played an important role.Key words:design patterns;MVC;CMS現(xiàn)在的很多大型的門戶網(wǎng)站,都是在靠系統(tǒng)維護(hù)人員手工在更新和修改系統(tǒng)頁面,如果想進(jìn)行網(wǎng)站內(nèi)容管理,面對千變?nèi)f化的信息流,沒有好的后臺系統(tǒng)支持,工作量將是十分巨大的,如果有一個好的后臺系
4、統(tǒng)來幫助維護(hù)人員提高效率,那將節(jié)省大量的人力物力,同時將系統(tǒng)維護(hù)的出錯率降到最低。要實現(xiàn)這樣一個系統(tǒng)一般至少要包含兩大部分:后臺業(yè)務(wù)子系統(tǒng),主要用于內(nèi)容的管理,新聞錄入,論壇子系統(tǒng)、權(quán)限管理等等;另外一個就是前臺系統(tǒng)。一般從頭開發(fā)一個內(nèi)容管理系統(tǒng),開銷非常大,本文提出一個基于開源技術(shù)的解決方案,所謂開源技術(shù)就是一些軟件開發(fā)組織開發(fā)的一些軟件,公開源代碼,你可以在他們工作的基礎(chǔ)上做少量的修改或做二次開發(fā),從而定制我們一個完整的系統(tǒng),目前在J2EE 技術(shù)平臺上就有一些比較成熟的開源框架技術(shù),比如Struts,Spring,Hibernate 等,用這些框架構(gòu)建我們的軟件系統(tǒng)成本開銷低,開發(fā)效率高。
5、本文首先介紹有關(guān)開源框架技術(shù),同時給出這些開源技術(shù)中用到的一些有些設(shè)計模式1,然后根據(jù)我們的設(shè)計目標(biāo),給出了內(nèi)容管理系統(tǒng)的系統(tǒng)架構(gòu),最后就整個系統(tǒng)的優(yōu)缺點做一個討論。1開源技術(shù)簡介Struts 是目前Web 開發(fā)中比較成熟的一種表現(xiàn)層的開源框架,它采用了MVC 經(jīng)典設(shè)計模式,被大量J2EE 開發(fā)人員所接受。它對Servlet 、JSP 、JavaBean 等進(jìn)行了封裝,通過用戶定義邏輯之間的跳轉(zhuǎn),實現(xiàn)頁面信息的流轉(zhuǎn),而且用戶自定義標(biāo)簽簡化了數(shù)據(jù)表現(xiàn)的代碼,為Web 開發(fā)提供了具有高可配置性的MVC 開發(fā)模式,它將Model 、View 和Controller 分別映射到Web 應(yīng)用中的組件。M
6、odel 由Action 來構(gòu)建,其本質(zhì)是在這里調(diào)用業(yè)務(wù)邏輯接口,并不是所有業(yè)務(wù)邏輯在這里實現(xiàn),View 是由JSP 和struts 提供的自定義標(biāo)簽來實現(xiàn),Controller 負(fù)責(zé)控制流程,由ActionServlet 和ActionMapping 來完成2。Spring 是一個流行的開源輕型容器(light-weight container,其最核心概念是Bean 工廠(Bean Factory,它能夠很方便的配置、裝配JAVABEAN 和普通的java 對象,通過IOC 容器和依賴注入技術(shù)無縫的將各個協(xié)同工作的業(yè)務(wù)邏輯對象整合在一起。而且Spring 提供了AOP (Aspect-Or
7、iented Programming,面向?qū)用娴木幊痰膶崿F(xiàn),用它來提供非管理環(huán)境下申明方式的事務(wù)、安全等服務(wù);DAO/ORM 的實現(xiàn)方便我們進(jìn)行數(shù)據(jù)庫的開發(fā);Web MVC 和Spring Web 提供了Java Web 應(yīng)用的框架或與其他流行的Web 框架進(jìn)行集成5。Hibernate 是一個免費的實現(xiàn)了ORM 的開源Java 包,是java 應(yīng)用程序和關(guān)系數(shù)據(jù)庫之間的橋梁。負(fù)責(zé)java 對象和關(guān)系數(shù)據(jù)之間的映射,其內(nèi)部封裝了JDBC 訪問數(shù)據(jù)庫的細(xì)節(jié),它使得與關(guān)系數(shù)據(jù)庫打交道變得十分輕松,向業(yè)務(wù)層提供了面向?qū)ο蟮臄?shù)據(jù)訪問API 6。2設(shè)計模式與IOC設(shè)計模式是在多個項目中總結(jié)出來成熟的針對
8、具體問題所提出的解決方案,由于在實際項目中反復(fù)檢驗,可以在后續(xù)的項目中結(jié)合具體情況選擇并重用。設(shè)計模式在面向?qū)ο箝_發(fā)領(lǐng)域現(xiàn)在已經(jīng)是一個非常熱門的技術(shù),總的可以分為三大類:創(chuàng)建型,主要與對象的創(chuàng)建有關(guān);結(jié)構(gòu)型,用于解決多個對象之間如何構(gòu)建復(fù)合對象的方法;行為型1。在我們前面剛剛介紹的幾種開源框架中,采用了我們?nèi)箢愋驮O(shè)計模式中的多種,如著名的MVC 模式??刂品崔D(zhuǎn)(Ioc 是Spring 框架的核心技術(shù),其本質(zhì)是減少業(yè)務(wù)組件之間的依賴性和耦合性。在傳統(tǒng)的方式中,我們要調(diào)用其他業(yè)務(wù)類來協(xié)同工作,需要在代碼中編寫相應(yīng)的代碼來查找和定位相關(guān)類,由于是硬編碼,測試和以后業(yè)務(wù)變更修改變動相當(dāng)大,不利于開發(fā)
9、收稿日期:2010-01-19作者簡介:黃道斌(1981-,男,安徽蕪湖人,碩士,皖南醫(yī)學(xué)院,主要研究方向為軟件工程、信息安全、軟件項目管理。數(shù)據(jù)庫與信息管理本欄目責(zé)任編輯:聞翔軍Computer Knowledge and Technology 電腦知識與技術(shù)第6卷第10期(2010年4月和維護(hù)。控制反轉(zhuǎn)(Ioc 就是把類之間的關(guān)聯(lián)交由容器來完成,其實整個容器就相當(dāng)于一個工廠,每個類需要什么都不需要自己動手去找,而是通過注入技術(shù)來完成相關(guān)類之間的依賴關(guān)系,因此采用Ioc 技術(shù)非常適合實施針對接口編程,在業(yè)務(wù)類中聲明依賴對象只須用接口的方式,而任何實現(xiàn)了該接口的類都可以相互替換,只須在相應(yīng)的配
10、置文件中聲明即可,非常利于代碼維護(hù)和系統(tǒng)擴展。3系統(tǒng)架構(gòu)在前面介紹的基礎(chǔ)上,我們針對內(nèi)容管理系統(tǒng)的可維護(hù)性和良好的擴展性,給出我們的設(shè)計目標(biāo),具體的設(shè)計實現(xiàn),以及對整個設(shè)計的分析。3.1系統(tǒng)設(shè)計目標(biāo)傳統(tǒng)的J2EE 架構(gòu)方案過于復(fù)雜,在J2EE 平臺中由于其復(fù)雜的應(yīng)用程序和整體性能的低下,特別是軟件開發(fā),測試維護(hù)成本是相當(dāng)?shù)母?因此我們采用一種輕量級的解決方案。在開源框架領(lǐng)域有一個已經(jīng)被很多J2EE 平臺開發(fā)者所接受的就是Spring 技術(shù),它支持控制反轉(zhuǎn)(IOC 和AOP 編程,我們就是通過SPRING 技術(shù)來整合其他開源技術(shù)達(dá)到我們整個系統(tǒng)的目標(biāo)要求:采用多層設(shè)計,并且每一層之間的擴展以及可
11、替換性要很靈活,這利于以后整個系統(tǒng)的升級和維護(hù);實現(xiàn)業(yè)務(wù)邏輯的代碼必需與表現(xiàn)層的代碼分開;業(yè)務(wù)層的數(shù)據(jù)整合可配置性需要靈活,方便系統(tǒng)擴展;對于數(shù)據(jù)保存方面,能夠方面的整合來源不同的數(shù)據(jù)源。3.2系統(tǒng)設(shè)計根據(jù)前面的有關(guān)系統(tǒng)的目標(biāo)分析,我們結(jié)合各個開源框架的技術(shù)特點,把整個系 統(tǒng)的設(shè)計方案實現(xiàn)如圖1所示。如圖1所示,整個系統(tǒng)分為四層,數(shù)據(jù)表現(xiàn)層,業(yè)務(wù)邏輯層,數(shù)據(jù)持久層和數(shù)據(jù)庫。下面我們就結(jié)合上述分層,具體來看看每一層開源框架是怎么協(xié)調(diào)工作的。數(shù)據(jù)表現(xiàn)層,在這一層里面,可以選擇的開源框架很多,我們這里選擇的是Struts,它是一個基于MVC 設(shè)計模式的框架,通過XML 格式的配置文件,很容易實現(xiàn)各個
12、不同頁面間的導(dǎo)航,但其最優(yōu)秀的地方在于其是基于MVC 設(shè)計模式,結(jié)構(gòu)清晰,使開發(fā)者只關(guān)注如何在Action 中如何從業(yè)務(wù)層中獲取自己所需要的業(yè)務(wù)數(shù)據(jù),其他內(nèi)部的流轉(zhuǎn)控制全部交由Struts 來完成。業(yè)務(wù)層是整個架構(gòu)中最為核心的層次,它為表現(xiàn)層提供所需要的數(shù)據(jù),具體的業(yè)務(wù)邏輯在這層實現(xiàn),同時它也負(fù)責(zé)整合來自不同的數(shù)據(jù)源。采用Spring 框架主要基于如下一些方面考慮:與表現(xiàn)層很好的分離,為表現(xiàn)層提供所有需要的數(shù)據(jù),同時能夠為不同的客戶增加不同的表現(xiàn)層,在Spring 框架中我們用接口的形式提供服務(wù),所以擴展很靈活,而且表現(xiàn)層的修改也不會或者很少改變業(yè)務(wù)層;降低系統(tǒng)的復(fù)雜性,整個系統(tǒng)的復(fù)雜性只與需
13、求業(yè)務(wù)流程的復(fù)雜程度相關(guān),不能像EJB 開發(fā)模式那么復(fù)雜;對于底層數(shù)據(jù)訪問技術(shù),采用較為高級的訪問方式,采用O/R 框架來完成,把盡可能多的精力放在業(yè)務(wù)邏輯上,spring 在集成O/R 框架方面做的非常優(yōu)秀,可以與不同的O/R 框架集成;spring 框架是一個輕量級的容器,其本質(zhì)就是一個IoC 容器,利用這個特性,容器中的業(yè)務(wù)類就不用自己動手查找資源和所依賴的對象了,而是通過聲明的方式,交由容器幫其去查找和加載,這樣做的方式優(yōu)點非常多,首先就是不必在業(yè)務(wù)類中通過硬編碼的方式指定與其相關(guān)的對象,利于實現(xiàn)針對接口編程,以后擴展和修改非常方便,其次是利于測試開發(fā),傳統(tǒng)的EJB 方式,由于其依賴環(huán)
14、境復(fù)雜,很難實施測試,而采用spring 方式則大大不同,非常容易測試,利于提高代碼質(zhì)量。在數(shù)據(jù)持久層,我們沒有采用JDBC 方式來訪問數(shù)據(jù)庫,而是采用的是Hibernate 數(shù)據(jù)持久化框架,主要考慮到在大量的業(yè)務(wù)邏輯里面嵌入SQL 語句,將給以后的維護(hù)工作帶來很大的困難,而且編程效率太低,因此需要采用一種能夠?qū)⑽覀兊膶嶓w對象與表數(shù)據(jù)進(jìn)行相互映射的技術(shù),來屏蔽底層的數(shù)據(jù)訪問細(xì)節(jié),也就是說在業(yè)務(wù)邏輯類中只對我們的數(shù)據(jù)類對象進(jìn)行操作,如何將對象轉(zhuǎn)換為表中數(shù)據(jù)交由Hibernate 來完成,這將大大降低開發(fā)難度,提高開發(fā)效率,同時采用相應(yīng)的數(shù)據(jù)緩存技術(shù),通過其底層的機制保證緩存中數(shù)據(jù)與數(shù)據(jù)庫中的保持
15、同步。3.3系統(tǒng)設(shè)計分析針對我們的設(shè)計目標(biāo),我們提出了多層的解決方案,在表現(xiàn)層采用的是目前最為成熟的開發(fā)框架Struts,業(yè)務(wù)層為Spring 框架,數(shù)據(jù)持久層采用的是Hibernate 。這個設(shè)計的核心在于業(yè)務(wù)層的Spring 框架,它能夠很好的與表現(xiàn)層集成,對Hibernate 的支持也非常的出色,整個系統(tǒng)設(shè)計在開發(fā)實施以及將來的擴展維護(hù)都非常容易。4總結(jié)本文在提出了一個內(nèi)容管理系統(tǒng)的設(shè)計方案,針對項目開發(fā)成本開銷,軟件的可維護(hù),可擴展等方面的原因,提出了一個基于開源框架的多層設(shè)計方案,同時就具體的框架技術(shù)在項目中的每個層次中的作用做了詳細(xì)分析,是一個值得采用的方案。參考文獻(xiàn):1閻宏.Java 與模式M.北京:電子工業(yè)出版,2002.2孫衛(wèi)琴.精通Strut
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- β受體阻滯劑在心血管疾病中的應(yīng)用-聚焦圍手術(shù)期幻燈片課件
- 健康生活中的口腔衛(wèi)生
- 健康兒童的需求和護(hù)理
- 健康衛(wèi)生與醫(yī)療衛(wèi)生體系的互動作用
- 高溫災(zāi)害與防范
- 2023八年級物理上冊 第四章 多彩的光第五節(jié) 科學(xué)探究:凸透鏡成像第2課時 探究凸透鏡成像規(guī)律說課稿 (新版)滬科版
- 10竹節(jié)人(說課稿)-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 3《西江月·夜行黃沙道中》說課稿-2024-2025學(xué)年六年級上冊語文統(tǒng)編版
- 2025版美術(shù)教師國際交流項目聘用合同協(xié)議4篇
- 4認(rèn)識科技革命(說課稿)-2023-2024學(xué)年科學(xué)六年級下冊冀人版
- 國家自然科學(xué)基金項目申請書
- 電力電纜故障分析報告
- 中國電信網(wǎng)絡(luò)資源管理系統(tǒng)介紹
- 2024年浙江首考高考選考技術(shù)試卷試題真題(答案詳解)
- 《品牌形象設(shè)計》課件
- 倉庫管理基礎(chǔ)知識培訓(xùn)課件1
- 藥品的收貨與驗收培訓(xùn)課件
- GH-T 1388-2022 脫水大蒜標(biāo)準(zhǔn)規(guī)范
- 高中英語人教版必修第一二冊語境記單詞清單
- 政府機關(guān)保潔服務(wù)投標(biāo)方案(技術(shù)方案)
- HIV感染者合并慢性腎病的治療指南
評論
0/150
提交評論