基于Struts+Spring+ Hibernate框架的LIMS的設(shè)計和實現(xiàn)分享
關(guān)鍵技術(shù)
MVC設(shè)計模式
目前幾乎所有的Java企業(yè)應(yīng)用程序都采用基于Web的用戶操作界面,因此構(gòu)建在可重用商業(yè)邏輯之上的Web層應(yīng)用是非常重要的。MVC設(shè)計模式把應(yīng)用程序抽象為Model(模型)、View(視圖)、Controller(控制器)三個功能截然不同的部分[1]。三者既分工又合作地完成用戶提交的每項任務(wù),如圖1所示。
MVC模式在J2EE平臺上的實現(xiàn)
J2EE模型提供了一個很好的企業(yè)應(yīng)用框架及解決方法,提供了靈活的技術(shù)選擇;但它只是一個應(yīng)用開發(fā)框架,不能解決系統(tǒng)的所有問題;同時,多層企業(yè)應(yīng)用框架在提高了軟件的重用性和分解了問題的復(fù)雜性的同時,也使得代碼龐大,層與層之間的控制關(guān)系復(fù)雜。MNC設(shè)計模式以它可以分離數(shù)據(jù)訪問和數(shù)據(jù)表現(xiàn),可以開發(fā)一個具有伸縮性的、便于擴(kuò)展的控制器來維護(hù)整個流程的優(yōu)勢。MVC模式運用于J2EE平臺的具體體系結(jié)構(gòu)如圖2所示[2]。
Struts框架[3]
Struts是Jakarta工程提供的用于開發(fā)Web應(yīng)用軟件的框架。它的目的是提高運用MVC模式開發(fā)Web應(yīng)用的效率。它將MVC模式所具有的“分離業(yè)務(wù)邏輯和顯示邏輯”的能力發(fā)揮到了極點,很好的幫助Java開發(fā)人員開發(fā)J2EE Web層。圖3是MVC模式中模型、視圖、控制器的作用以及它們之間的交互,Struts框架是基于MNC的。
Spring框架
Spring是一個由多個相對獨立子框架組成的完整的應(yīng)用框架;它可以在很多應(yīng)用層面發(fā)揮作用,在具體的使用中,開發(fā)者可以將其無縫集成起來,成為一個全面的應(yīng)用框架。
Spring對Struts的支持
Spring為了集成Struts,專門提供了org. Spring framework. Web. Struts包,Action Support在集成Spring上下文上起到很重要的作用。[4]
通過在Struts-config.xml中配置如下內(nèi)容的方式來初始化Spring ApplicationContext,使用到了Struts提供的擴(kuò)展機(jī)制(并不是所有的Web框架都提供了類似的擴(kuò)展機(jī)制)。Spring和Struts使能應(yīng)用需要借助于ActionSupport,才能夠使StrutsAction訪問到Spring ApplicationContext。開發(fā)繼承于ActionSupport的Action,在這些Action中就可以使用到Spring受管JavaBean(借助于Spring ApplicationContext的getBean()方法獲得它們),進(jìn)而,就可以享受到業(yè)務(wù)邏輯、安全服務(wù)等。開發(fā)ActionSupport的子類是非常簡單的事情,它同開發(fā)100%Struts Action子類幾乎不存在任何差別。
Spring對ORM的支持
Hibernate是對象/關(guān)系映射的解決方案,簡寫為ORM。所謂ORM,簡單地說就是將Java中的對象與對象關(guān)系,對應(yīng)到關(guān)系數(shù)據(jù)庫中表與表之間的關(guān)系。
為使開發(fā)者能夠以統(tǒng)一的方式同數(shù)據(jù)庫訪問技術(shù)(比如JDBC,Hibernate, JDO, Toplink)進(jìn)行交互,Spring提供了允許開發(fā)者可以在不同的數(shù)據(jù)訪問技術(shù)間切換、而且在切換的同時不用考慮異常處理的DAO( DataAccessObject)抽象。
Spring提供了一套抽象DAO類,供開發(fā)者擴(kuò)展,這有利于以統(tǒng)一的方式操作各種DAO技術(shù),比如JDO,JDBC。這些DAO類提供了設(shè)置數(shù)據(jù)源及相關(guān)輔助信息的方法,其中的一些方法同具體的DAO技術(shù)相關(guān)。通過SpringDAО抽象,能夠?qū)⒕唧w的DAO技術(shù)的異常,比如HibernateException, SQLException,轉(zhuǎn)換成DataAccessException為根的異常處理體系中。針對Hibernate的Spring DAO抽象類是Hibernate DaoSupport,開發(fā)者需要為它配置Hibernate Session Factory,通過其子類,開發(fā)者可以獲得Hibernate Template。當(dāng)然,也可以手工配置Hibernate Template。
目前Spring框架借助于Spring loC和Spring AOP對Hibernate進(jìn)行了最為有效的集成。
更多檢驗檢測相關(guān)資訊信息,請繼續(xù)關(guān)注譜趣LIMS2動態(tài)~
免責(zé)聲明:本平臺(www.LIMS2.com)文章均系轉(zhuǎn)載,版權(quán)歸原作者所有。因轉(zhuǎn)載眾多無法確認(rèn)真正的原始作者,如涉及作品版權(quán)問題,請及時聯(lián)系我們,我們將作刪除處理,以保障您的權(quán)益!