基于開(kāi)源框架的內(nèi)容管理系統(tǒng)_第1頁(yè)
基于開(kāi)源框架的內(nèi)容管理系統(tǒng)_第2頁(yè)
基于開(kāi)源框架的內(nèi)容管理系統(tǒng)_第3頁(yè)
基于開(kāi)源框架的內(nèi)容管理系統(tǒng)_第4頁(yè)
基于開(kāi)源框架的內(nèi)容管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本欄目責(zé)任編輯:聞翔軍數(shù)據(jù)庫(kù)與信息管理Computer Knowledge and Technology 電腦知識(shí)與技術(shù)第6卷第10期(2010年4月基于開(kāi)源框架的內(nèi)容管理系統(tǒng)黃道斌,尹榮章,葉明全,朱金好(皖南醫(yī)學(xué)院計(jì)算機(jī)教研室,安徽蕪湖241000摘要:該文介紹了一個(gè)基于J2EE 開(kāi)源框架設(shè)計(jì)的內(nèi)容管理系統(tǒng),針對(duì)內(nèi)容管理系統(tǒng)的可維護(hù)性和良好的擴(kuò)展性問(wèn)題,討論了Struts 、Spring 、Hibernate 等開(kāi)源技術(shù)在解決這些問(wèn)題的重要作用。關(guān)鍵詞:設(shè)計(jì)模式;MVC ;CMS中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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)頁(yè)面,如果想進(jìn)行網(wǎng)站內(nèi)容管理,面對(duì)千變?nèi)f化的信息流,沒(méi)有好的后臺(tái)系統(tǒng)支持,工作量將是十分巨大的,如果有一個(gè)好的后臺(tái)系

4、統(tǒng)來(lái)幫助維護(hù)人員提高效率,那將節(jié)省大量的人力物力,同時(shí)將系統(tǒng)維護(hù)的出錯(cuò)率降到最低。要實(shí)現(xiàn)這樣一個(gè)系統(tǒng)一般至少要包含兩大部分:后臺(tái)業(yè)務(wù)子系統(tǒng),主要用于內(nèi)容的管理,新聞錄入,論壇子系統(tǒng)、權(quán)限管理等等;另外一個(gè)就是前臺(tái)系統(tǒng)。一般從頭開(kāi)發(fā)一個(gè)內(nèi)容管理系統(tǒng),開(kāi)銷非常大,本文提出一個(gè)基于開(kāi)源技術(shù)的解決方案,所謂開(kāi)源技術(shù)就是一些軟件開(kāi)發(fā)組織開(kāi)發(fā)的一些軟件,公開(kāi)源代碼,你可以在他們工作的基礎(chǔ)上做少量的修改或做二次開(kāi)發(fā),從而定制我們一個(gè)完整的系統(tǒng),目前在J2EE 技術(shù)平臺(tái)上就有一些比較成熟的開(kāi)源框架技術(shù),比如Struts,Spring,Hibernate 等,用這些框架構(gòu)建我們的軟件系統(tǒng)成本開(kāi)銷低,開(kāi)發(fā)效率高。

5、本文首先介紹有關(guān)開(kāi)源框架技術(shù),同時(shí)給出這些開(kāi)源技術(shù)中用到的一些有些設(shè)計(jì)模式1,然后根據(jù)我們的設(shè)計(jì)目標(biāo),給出了內(nèi)容管理系統(tǒng)的系統(tǒng)架構(gòu),最后就整個(gè)系統(tǒng)的優(yōu)缺點(diǎn)做一個(gè)討論。1開(kāi)源技術(shù)簡(jiǎn)介Struts 是目前Web 開(kāi)發(fā)中比較成熟的一種表現(xiàn)層的開(kāi)源框架,它采用了MVC 經(jīng)典設(shè)計(jì)模式,被大量J2EE 開(kāi)發(fā)人員所接受。它對(duì)Servlet 、JSP 、JavaBean 等進(jìn)行了封裝,通過(guò)用戶定義邏輯之間的跳轉(zhuǎn),實(shí)現(xiàn)頁(yè)面信息的流轉(zhuǎn),而且用戶自定義標(biāo)簽簡(jiǎn)化了數(shù)據(jù)表現(xiàn)的代碼,為Web 開(kāi)發(fā)提供了具有高可配置性的MVC 開(kāi)發(fā)模式,它將Model 、View 和Controller 分別映射到Web 應(yīng)用中的組件。M

6、odel 由Action 來(lái)構(gòu)建,其本質(zhì)是在這里調(diào)用業(yè)務(wù)邏輯接口,并不是所有業(yè)務(wù)邏輯在這里實(shí)現(xiàn),View 是由JSP 和struts 提供的自定義標(biāo)簽來(lái)實(shí)現(xiàn),Controller 負(fù)責(zé)控制流程,由ActionServlet 和ActionMapping 來(lái)完成2。Spring 是一個(gè)流行的開(kāi)源輕型容器(light-weight container,其最核心概念是Bean 工廠(Bean Factory,它能夠很方便的配置、裝配JAVABEAN 和普通的java 對(duì)象,通過(guò)IOC 容器和依賴注入技術(shù)無(wú)縫的將各個(gè)協(xié)同工作的業(yè)務(wù)邏輯對(duì)象整合在一起。而且Spring 提供了AOP (Aspect-Or

7、iented Programming,面向?qū)用娴木幊痰膶?shí)現(xiàn),用它來(lái)提供非管理環(huán)境下申明方式的事務(wù)、安全等服務(wù);DAO/ORM 的實(shí)現(xiàn)方便我們進(jìn)行數(shù)據(jù)庫(kù)的開(kāi)發(fā);Web MVC 和Spring Web 提供了Java Web 應(yīng)用的框架或與其他流行的Web 框架進(jìn)行集成5。Hibernate 是一個(gè)免費(fèi)的實(shí)現(xiàn)了ORM 的開(kāi)源Java 包,是java 應(yīng)用程序和關(guān)系數(shù)據(jù)庫(kù)之間的橋梁。負(fù)責(zé)java 對(duì)象和關(guān)系數(shù)據(jù)之間的映射,其內(nèi)部封裝了JDBC 訪問(wèn)數(shù)據(jù)庫(kù)的細(xì)節(jié),它使得與關(guān)系數(shù)據(jù)庫(kù)打交道變得十分輕松,向業(yè)務(wù)層提供了面向?qū)ο蟮臄?shù)據(jù)訪問(wèn)API 6。2設(shè)計(jì)模式與IOC設(shè)計(jì)模式是在多個(gè)項(xiàng)目中總結(jié)出來(lái)成熟的針對(duì)

8、具體問(wèn)題所提出的解決方案,由于在實(shí)際項(xiàng)目中反復(fù)檢驗(yàn),可以在后續(xù)的項(xiàng)目中結(jié)合具體情況選擇并重用。設(shè)計(jì)模式在面向?qū)ο箝_(kāi)發(fā)領(lǐng)域現(xiàn)在已經(jīng)是一個(gè)非常熱門的技術(shù),總的可以分為三大類:創(chuàng)建型,主要與對(duì)象的創(chuàng)建有關(guān);結(jié)構(gòu)型,用于解決多個(gè)對(duì)象之間如何構(gòu)建復(fù)合對(duì)象的方法;行為型1。在我們前面剛剛介紹的幾種開(kāi)源框架中,采用了我們?nèi)箢愋驮O(shè)計(jì)模式中的多種,如著名的MVC 模式??刂品崔D(zhuǎn)(Ioc 是Spring 框架的核心技術(shù),其本質(zhì)是減少業(yè)務(wù)組件之間的依賴性和耦合性。在傳統(tǒng)的方式中,我們要調(diào)用其他業(yè)務(wù)類來(lái)協(xié)同工作,需要在代碼中編寫相應(yīng)的代碼來(lái)查找和定位相關(guān)類,由于是硬編碼,測(cè)試和以后業(yè)務(wù)變更修改變動(dòng)相當(dāng)大,不利于開(kāi)發(fā)

9、收稿日期:2010-01-19作者簡(jiǎn)介:黃道斌(1981-,男,安徽蕪湖人,碩士,皖南醫(yī)學(xué)院,主要研究方向?yàn)檐浖こ?、信息安全、軟件?xiàng)目管理。數(shù)據(jù)庫(kù)與信息管理本欄目責(zé)任編輯:聞翔軍Computer Knowledge and Technology 電腦知識(shí)與技術(shù)第6卷第10期(2010年4月和維護(hù)??刂品崔D(zhuǎn)(Ioc 就是把類之間的關(guān)聯(lián)交由容器來(lái)完成,其實(shí)整個(gè)容器就相當(dāng)于一個(gè)工廠,每個(gè)類需要什么都不需要自己動(dòng)手去找,而是通過(guò)注入技術(shù)來(lái)完成相關(guān)類之間的依賴關(guān)系,因此采用Ioc 技術(shù)非常適合實(shí)施針對(duì)接口編程,在業(yè)務(wù)類中聲明依賴對(duì)象只須用接口的方式,而任何實(shí)現(xiàn)了該接口的類都可以相互替換,只須在相應(yīng)的配

10、置文件中聲明即可,非常利于代碼維護(hù)和系統(tǒng)擴(kuò)展。3系統(tǒng)架構(gòu)在前面介紹的基礎(chǔ)上,我們針對(duì)內(nèi)容管理系統(tǒng)的可維護(hù)性和良好的擴(kuò)展性,給出我們的設(shè)計(jì)目標(biāo),具體的設(shè)計(jì)實(shí)現(xiàn),以及對(duì)整個(gè)設(shè)計(jì)的分析。3.1系統(tǒng)設(shè)計(jì)目標(biāo)傳統(tǒng)的J2EE 架構(gòu)方案過(guò)于復(fù)雜,在J2EE 平臺(tái)中由于其復(fù)雜的應(yīng)用程序和整體性能的低下,特別是軟件開(kāi)發(fā),測(cè)試維護(hù)成本是相當(dāng)?shù)母?因此我們采用一種輕量級(jí)的解決方案。在開(kāi)源框架領(lǐng)域有一個(gè)已經(jīng)被很多J2EE 平臺(tái)開(kāi)發(fā)者所接受的就是Spring 技術(shù),它支持控制反轉(zhuǎn)(IOC 和AOP 編程,我們就是通過(guò)SPRING 技術(shù)來(lái)整合其他開(kāi)源技術(shù)達(dá)到我們整個(gè)系統(tǒng)的目標(biāo)要求:采用多層設(shè)計(jì),并且每一層之間的擴(kuò)展以及可

11、替換性要很靈活,這利于以后整個(gè)系統(tǒng)的升級(jí)和維護(hù);實(shí)現(xiàn)業(yè)務(wù)邏輯的代碼必需與表現(xiàn)層的代碼分開(kāi);業(yè)務(wù)層的數(shù)據(jù)整合可配置性需要靈活,方便系統(tǒng)擴(kuò)展;對(duì)于數(shù)據(jù)保存方面,能夠方面的整合來(lái)源不同的數(shù)據(jù)源。3.2系統(tǒng)設(shè)計(jì)根據(jù)前面的有關(guān)系統(tǒng)的目標(biāo)分析,我們結(jié)合各個(gè)開(kāi)源框架的技術(shù)特點(diǎn),把整個(gè)系 統(tǒng)的設(shè)計(jì)方案實(shí)現(xiàn)如圖1所示。如圖1所示,整個(gè)系統(tǒng)分為四層,數(shù)據(jù)表現(xiàn)層,業(yè)務(wù)邏輯層,數(shù)據(jù)持久層和數(shù)據(jù)庫(kù)。下面我們就結(jié)合上述分層,具體來(lái)看看每一層開(kāi)源框架是怎么協(xié)調(diào)工作的。數(shù)據(jù)表現(xiàn)層,在這一層里面,可以選擇的開(kāi)源框架很多,我們這里選擇的是Struts,它是一個(gè)基于MVC 設(shè)計(jì)模式的框架,通過(guò)XML 格式的配置文件,很容易實(shí)現(xiàn)各個(gè)

12、不同頁(yè)面間的導(dǎo)航,但其最優(yōu)秀的地方在于其是基于MVC 設(shè)計(jì)模式,結(jié)構(gòu)清晰,使開(kāi)發(fā)者只關(guān)注如何在Action 中如何從業(yè)務(wù)層中獲取自己所需要的業(yè)務(wù)數(shù)據(jù),其他內(nèi)部的流轉(zhuǎn)控制全部交由Struts 來(lái)完成。業(yè)務(wù)層是整個(gè)架構(gòu)中最為核心的層次,它為表現(xiàn)層提供所需要的數(shù)據(jù),具體的業(yè)務(wù)邏輯在這層實(shí)現(xiàn),同時(shí)它也負(fù)責(zé)整合來(lái)自不同的數(shù)據(jù)源。采用Spring 框架主要基于如下一些方面考慮:與表現(xiàn)層很好的分離,為表現(xiàn)層提供所有需要的數(shù)據(jù),同時(shí)能夠?yàn)椴煌目蛻粼黾硬煌谋憩F(xiàn)層,在Spring 框架中我們用接口的形式提供服務(wù),所以擴(kuò)展很靈活,而且表現(xiàn)層的修改也不會(huì)或者很少改變業(yè)務(wù)層;降低系統(tǒng)的復(fù)雜性,整個(gè)系統(tǒng)的復(fù)雜性只與需

13、求業(yè)務(wù)流程的復(fù)雜程度相關(guān),不能像EJB 開(kāi)發(fā)模式那么復(fù)雜;對(duì)于底層數(shù)據(jù)訪問(wèn)技術(shù),采用較為高級(jí)的訪問(wèn)方式,采用O/R 框架來(lái)完成,把盡可能多的精力放在業(yè)務(wù)邏輯上,spring 在集成O/R 框架方面做的非常優(yōu)秀,可以與不同的O/R 框架集成;spring 框架是一個(gè)輕量級(jí)的容器,其本質(zhì)就是一個(gè)IoC 容器,利用這個(gè)特性,容器中的業(yè)務(wù)類就不用自己動(dòng)手查找資源和所依賴的對(duì)象了,而是通過(guò)聲明的方式,交由容器幫其去查找和加載,這樣做的方式優(yōu)點(diǎn)非常多,首先就是不必在業(yè)務(wù)類中通過(guò)硬編碼的方式指定與其相關(guān)的對(duì)象,利于實(shí)現(xiàn)針對(duì)接口編程,以后擴(kuò)展和修改非常方便,其次是利于測(cè)試開(kāi)發(fā),傳統(tǒng)的EJB 方式,由于其依賴環(huán)

14、境復(fù)雜,很難實(shí)施測(cè)試,而采用spring 方式則大大不同,非常容易測(cè)試,利于提高代碼質(zhì)量。在數(shù)據(jù)持久層,我們沒(méi)有采用JDBC 方式來(lái)訪問(wèn)數(shù)據(jù)庫(kù),而是采用的是Hibernate 數(shù)據(jù)持久化框架,主要考慮到在大量的業(yè)務(wù)邏輯里面嵌入SQL 語(yǔ)句,將給以后的維護(hù)工作帶來(lái)很大的困難,而且編程效率太低,因此需要采用一種能夠?qū)⑽覀兊膶?shí)體對(duì)象與表數(shù)據(jù)進(jìn)行相互映射的技術(shù),來(lái)屏蔽底層的數(shù)據(jù)訪問(wèn)細(xì)節(jié),也就是說(shuō)在業(yè)務(wù)邏輯類中只對(duì)我們的數(shù)據(jù)類對(duì)象進(jìn)行操作,如何將對(duì)象轉(zhuǎn)換為表中數(shù)據(jù)交由Hibernate 來(lái)完成,這將大大降低開(kāi)發(fā)難度,提高開(kāi)發(fā)效率,同時(shí)采用相應(yīng)的數(shù)據(jù)緩存技術(shù),通過(guò)其底層的機(jī)制保證緩存中數(shù)據(jù)與數(shù)據(jù)庫(kù)中的保持

15、同步。3.3系統(tǒng)設(shè)計(jì)分析針對(duì)我們的設(shè)計(jì)目標(biāo),我們提出了多層的解決方案,在表現(xiàn)層采用的是目前最為成熟的開(kāi)發(fā)框架Struts,業(yè)務(wù)層為Spring 框架,數(shù)據(jù)持久層采用的是Hibernate 。這個(gè)設(shè)計(jì)的核心在于業(yè)務(wù)層的Spring 框架,它能夠很好的與表現(xiàn)層集成,對(duì)Hibernate 的支持也非常的出色,整個(gè)系統(tǒng)設(shè)計(jì)在開(kāi)發(fā)實(shí)施以及將來(lái)的擴(kuò)展維護(hù)都非常容易。4總結(jié)本文在提出了一個(gè)內(nèi)容管理系統(tǒng)的設(shè)計(jì)方案,針對(duì)項(xiàng)目開(kāi)發(fā)成本開(kāi)銷,軟件的可維護(hù),可擴(kuò)展等方面的原因,提出了一個(gè)基于開(kāi)源框架的多層設(shè)計(jì)方案,同時(shí)就具體的框架技術(shù)在項(xiàng)目中的每個(gè)層次中的作用做了詳細(xì)分析,是一個(gè)值得采用的方案。參考文獻(xiàn):1閻宏.Java 與模式M.北京:電子工業(yè)出版,2002.2孫衛(wèi)琴.精通Strut

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論