




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)自動(dòng)角邊封箱機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)腈綸雪尼爾面料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 清洗合作合同范本
- 2025至2030年中國(guó)聚氨酯底女式休閑鞋數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 物理原理與現(xiàn)代建筑設(shè)計(jì)的關(guān)系研究
- 二零二五年度公寓租賃房屋租賃權(quán)糾紛解決服務(wù)合同范本
- 二零二五年度綠色商場(chǎng)商鋪?zhàn)赓U合同終止及環(huán)保責(zé)任協(xié)議
- 總承包 補(bǔ)充合同范本
- 科技公司如何通過(guò)數(shù)據(jù)分析提高客戶滿意度
- 銅仁購(gòu)房合同范本
- 2025北京平谷初三(上)期末數(shù)學(xué)真題試卷(含答案解析)
- VQ-100無(wú)人機(jī)手冊(cè)(一)
- 2024年01月河北2024滄州銀行總行科技開(kāi)發(fā)部招考筆試歷年參考題庫(kù)附帶答案詳解
- 2024-2030年中國(guó)橡膠密封件行業(yè)運(yùn)行動(dòng)態(tài)及發(fā)展前景規(guī)劃研究報(bào)告
- 八省八校2025屆高三上學(xué)期12月聯(lián)合測(cè)評(píng)語(yǔ)文試題及參考答案
- 現(xiàn)代物流基礎(chǔ)習(xí)題+參考答案
- 商洛職業(yè)技術(shù)學(xué)院《會(huì)計(jì)信息系統(tǒng)單統(tǒng)計(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 生產(chǎn)線搬新場(chǎng)地驗(yàn)證方案計(jì)劃
- 《古詩(shī)三首》五年級(jí)下冊(cè)第一單元教學(xué)方案
- 2025年農(nóng)村婦婦兩癌檢查項(xiàng)目實(shí)施方案工作計(jì)劃
- 上海美食介紹
評(píng)論
0/150
提交評(píng)論