畢業(yè)論文怎么寫(2)
畢業(yè)論文怎么寫
畢業(yè)論文怎么寫:關(guān)于javaee的畢業(yè)論文
基于JavaEE架構(gòu)的SSH框架的研究
摘 要:眼下企業(yè)在構(gòu)建其應(yīng)用平臺(tái)的時(shí)候,在架構(gòu)上首選JavaEE。此架構(gòu)的框架通常是Struts、Spring、Hibernate。若把3種框架合理結(jié)合,系統(tǒng)在開發(fā)效率方面不僅可提高,同時(shí)也可讓系統(tǒng)顯得更為穩(wěn)定、健壯及安全。本文首先對(duì)多層體系的JavaEE進(jìn)行簡(jiǎn)述,然后在特征上對(duì)3種框架分別作介紹,最后對(duì)整合下的3種框架(SSH框架)的獨(dú)特之處作概括。
關(guān)鍵詞:架構(gòu);JavaEE;框架;SSH;研究
中圖分類號(hào):TP311.52
框架的好處一是讓開發(fā)效率得以提升,二是給軟件復(fù)用開辟新途徑,所以對(duì)框架在強(qiáng)健與穩(wěn)定方面的構(gòu)建長(zhǎng)久被關(guān)注。本文從對(duì)多層體系的JavaEE進(jìn)行剖析出發(fā),接著對(duì)Struts、Spring和Hibernate進(jìn)行分析,最后整合這3種框架構(gòu)建成SSH框架。一來(lái)讓各層耦合度降低,二來(lái)對(duì)系統(tǒng)在移植、開發(fā)效率、維護(hù)上都有提高。
1 JavaEE總述
1.1 JavaEE的多層體系簡(jiǎn)述
平常說(shuō)架構(gòu)也可被稱為體系結(jié)構(gòu)。架構(gòu)指:作為一種結(jié)構(gòu),用來(lái)對(duì)其它東西進(jìn)行支持、封裝;尤其骨架性的支持,在構(gòu)建其它事物上它是基礎(chǔ)。JavaEE的分層結(jié)構(gòu)是:客戶層、WEB表示層、業(yè)務(wù)邏輯層、持久層、數(shù)據(jù)庫(kù)層[1]。WEB表示層用框架Struts來(lái)實(shí)現(xiàn),它把標(biāo)簽、信息資源及JSP等整合,讓業(yè)務(wù)邏輯同顯示邏輯兩者分離。業(yè)務(wù)邏輯層用框架Spring來(lái)實(shí)現(xiàn),它把輕量級(jí)容器(基于IOC)作核心,編程思想用的是面向切面(AOP),在非侵入性方面讓編碼得以實(shí)現(xiàn)。持久層用框架Hibernate來(lái)實(shí)現(xiàn),對(duì)數(shù)據(jù)庫(kù)表同領(lǐng)域模型對(duì)象間的ORM映射進(jìn)行實(shí)現(xiàn),使人工利用JDBC處理、SQL的時(shí)間縮減不少[2]。
1.2 JavaEE的缺陷
1.2.1 成本高
對(duì)容器EJB來(lái)說(shuō),一是組件供應(yīng)商必須給予復(fù)用組件做支撐;二是容器供應(yīng)商必須給予合適的底層環(huán)境讓其運(yùn)行;三是服務(wù)器供應(yīng)商必須給予應(yīng)用服務(wù)器才可讓組件部署、容納、管理得以實(shí)現(xiàn);四是系統(tǒng)部署員必須將組件在2個(gè)以上的服務(wù)器中做部署,這些均會(huì)耗費(fèi)極大支出成本。
1.2.2 開發(fā)思想限制大
遵照EJB機(jī)制就必須用EJB的規(guī)范對(duì)組件進(jìn)行編寫,再在容器里部署運(yùn)行。組件編寫時(shí),用戶訪問的遠(yuǎn)程及引導(dǎo)接口必須被編寫,一旦用戶對(duì)這2個(gè)接口進(jìn)行訪問,容器就會(huì)即刻攔截訪問并將其接管,通過(guò)Beans對(duì)應(yīng)的辦法調(diào)用來(lái)實(shí)現(xiàn)。開發(fā)思想限制太大讓諸多問題解決受挫。
1.2.3 EJB調(diào)用的缺陷
軟件開發(fā)時(shí)在對(duì)服務(wù)的調(diào)用方面,EJB機(jī)制卻是種束縛。整個(gè)部署中,對(duì)對(duì)象機(jī)制做定位的在EJB中是JNDI。無(wú)論對(duì)象定位還是獲取服務(wù)都是顯式的,如在代碼中調(diào)用者要組件做什么服務(wù),或者服務(wù)名字是什么,并且代碼還要對(duì)JNDI編碼方式及特定接口上加以實(shí)現(xiàn),對(duì)代碼復(fù)用都顯然不利,耦合性也會(huì)增加。再者服務(wù)查找也是顯式的,EJB的重量級(jí)再次體現(xiàn)。
1.2.4 處理持久化的缺陷
說(shuō)到持久化往往選擇分2種:第一是容器管理方面的持久化;第二是Bean管理方面的持久化。選擇第一種容器管理方面的持久化,則必須于Bean類中,對(duì)字段變量先做相應(yīng)定義,同時(shí)在容器、服務(wù)器上部署持久化信息。雖然工作量省下挺多,但成本極為不劃算。再者將來(lái)對(duì)持久化信息做改變也不靈活,功能極為有限。選擇第二種Bean管理方面的持久化,雖然系統(tǒng)靈活問題不存在,可是避免不了對(duì)JDBC做代碼編寫,而且凡是操作同數(shù)據(jù)庫(kù)沾邊的代碼都要編寫,一來(lái)重復(fù)性過(guò)強(qiáng);二來(lái)尤其在業(yè)務(wù)邏輯方面,對(duì)其代碼有太強(qiáng)侵入性。
2 Struts、Spring和Hibernate框架簡(jiǎn)述
2.1 Struts框架
2.1.1 Struts簡(jiǎn)述
該框架被基金會(huì)(Apache)視作開源軟件。一方面在穩(wěn)定、成熟及高效上從項(xiàng)目Apache里得以繼承,另一方面在流程控制及Taglib上也極其強(qiáng)大。此框架是對(duì)MVC模式良好應(yīng)用的典范。所謂MVC指:把模型、控制器與視圖的英文首字母取出并拼到一起。在實(shí)現(xiàn)組件方面由此框架給這3個(gè)類分別提供。
2.1.2 Struts優(yōu)缺點(diǎn)
MVC所有優(yōu)勢(shì)被Struts繼承,還在新內(nèi)容上加以擴(kuò)展。優(yōu)勢(shì)涵蓋:
(1)此框架是開源的。對(duì)設(shè)計(jì)者,一來(lái)開源意味著使用免費(fèi);二來(lái)開源可在實(shí)現(xiàn)機(jī)制上對(duì)MVC透徹了解;三來(lái)在全世界此框架受諸多設(shè)計(jì)員支持。
(2)包含強(qiáng)大標(biāo)記庫(kù)(Tablib)。借此框架可做代碼抽象及復(fù)用,使開發(fā)效率得以提升。另外也可做驗(yàn)證工作,使驗(yàn)證代碼不必重復(fù)寫,這樣工作量得以減少,驗(yàn)證代碼更易集中管理。
(3)系統(tǒng)導(dǎo)航聯(lián)系不同部分,系統(tǒng)脈絡(luò)更清晰,對(duì)系統(tǒng)整體設(shè)計(jì)員也更好把握,在擴(kuò)充維護(hù)方面系統(tǒng)也有提升。
此框架盡管優(yōu)勢(shì)較多,但劣勢(shì)也難以忽略:
(1)對(duì)于初學(xué)者來(lái)說(shuō),要想對(duì)此框架進(jìn)行透徹掌握須花費(fèi)大量時(shí)間,原因是它會(huì)讓學(xué)習(xí)者將長(zhǎng)久形成的編寫習(xí)慣完全打破。
(2)盡管此框架在結(jié)構(gòu)上更加清晰,但無(wú)疑這也會(huì)使系統(tǒng)變得更復(fù)雜。
(3)從出現(xiàn)至今,此框架時(shí)刻在變更,眼下該框架無(wú)論是在理論上還是經(jīng)驗(yàn)上都較淺薄,因此在大型軟件里將此框架運(yùn)用還極少。
2.2 Spring框架
2.2.1 Spring簡(jiǎn)述
該框架是在框架中屬輕量級(jí)的,它基于AOP及IOC的多層體系。雖然如此,但是此框架不會(huì)強(qiáng)制設(shè)計(jì)員在任一層都必須用到它。究其原因是它在模塊性能上表現(xiàn)良好,依照系統(tǒng)實(shí)實(shí)在在的情況,設(shè)計(jì)員完全可對(duì)它的任一模塊做選擇。另外,它在MVC模式上同樣可實(shí)現(xiàn),而且即便數(shù)據(jù)訪問用到的技術(shù)不同,它也可實(shí)現(xiàn)統(tǒng)一化的接口。
2.2.2 Spring優(yōu)缺點(diǎn) 該框架優(yōu)點(diǎn):第一、組裝代碼的思想采取延時(shí)注入,可使系統(tǒng)在擴(kuò)展性與靈活性上大幅提高,讓插件式編程得以實(shí)現(xiàn);第二、在AOP思想下,對(duì)業(yè)務(wù)邏輯做集中處理,讓重復(fù)代碼得以減少,讓解決方案更為有效。而此框架缺點(diǎn):一是使用的人較少;二是jsp寫的代碼過(guò)多;三是控制器太靈活;四是公用控制器匱乏。
2.3 Hibernate框架
2.3.1 Hibernate簡(jiǎn)述
此框架在開發(fā)上用到ORM映射。它對(duì)數(shù)據(jù)庫(kù)表同領(lǐng)域模型對(duì)象間的ORM映射進(jìn)行實(shí)現(xiàn),在對(duì)對(duì)象JDBC做封裝時(shí)采用輕量級(jí),所以設(shè)計(jì)員要操作數(shù)據(jù)庫(kù)在編程思想方面完全可選用對(duì)象編程。
2.3.2 Hibernate優(yōu)缺點(diǎn)
此框架優(yōu)點(diǎn):第一、實(shí)現(xiàn)透明性不是用字節(jié)碼而是Java對(duì)應(yīng)的反射機(jī)制;第二、與用SQL或JDBC操作數(shù)據(jù)庫(kù)比較,此框架的HQL語(yǔ)句用對(duì)象方式對(duì)既復(fù)雜又麻煩的關(guān)系算法做描述,使數(shù)據(jù)庫(kù)在查詢方面很大程度地得以簡(jiǎn)化,開發(fā)效率也順其自然得以加快;第三、此框架對(duì)事務(wù)管理、數(shù)據(jù)訪問及緩存等進(jìn)行封裝,而不必自己編寫代碼;第四、將數(shù)據(jù)表數(shù)據(jù)映射到對(duì)象中,把對(duì)象當(dāng)成傳輸媒介,讓各層傳輸更容易[3]。
此框架缺點(diǎn):第一、眼下此框架僅限于對(duì)數(shù)據(jù)表的支持,其余對(duì)象少有支持;第二、此框架雖然在復(fù)雜表的關(guān)聯(lián)方面映射良好,但要想對(duì)存儲(chǔ)過(guò)程用數(shù)據(jù)庫(kù)調(diào)用是不行的,因?yàn)樗⒎菙?shù)據(jù)表對(duì)象,因此只可借助JDBC來(lái)做到[4]。
3 基于JavaEE架構(gòu)SSH框架設(shè)計(jì)與實(shí)現(xiàn)
3.1 總體規(guī)劃
作為由Struts、Spring和Hibernate整合后搭建的框架,設(shè)計(jì)目的是:為web營(yíng)造簡(jiǎn)潔化、功能極強(qiáng)的框架,讓組件復(fù)用性更高,層間耦合更低,無(wú)論維護(hù)還是擴(kuò)展方面系統(tǒng)都更好。把SSH框架用3層表示:一是表示層,二是業(yè)務(wù)層,三是持久層。在程序處理方面,每層明確分工,不跟另2層功能重合,同時(shí)每層同另外2層完全分離,只需在3層間加一通信接口即可。
把JavaEE做SSH框架基礎(chǔ)。在框架的流程里,表示層用Struts替代,一是對(duì)用戶請(qǐng)求用標(biāo)記庫(kù)來(lái)管理,同時(shí)給出對(duì)應(yīng)的響應(yīng);二是業(yè)務(wù)邏輯方面,用控制器做對(duì)應(yīng)控制。而框架Spring跟框架Struts可完美結(jié)合,在依賴注射及事務(wù)管理上,它有獨(dú)到的地方,所以在業(yè)務(wù)邏輯方面用它極為合適。采用Hibernate做持久層,在對(duì)象封裝方面對(duì)JDBC是輕量級(jí)的[5]。
3.2 具體實(shí)現(xiàn)
用Struts做表示層,MVC控制角色用通用控制組件替代,Action可讓鏈接轉(zhuǎn)向、動(dòng)作處理及業(yè)務(wù)邏輯得以實(shí)現(xiàn)。
用Spring做業(yè)務(wù)層,用來(lái)對(duì)業(yè)務(wù)組件在關(guān)聯(lián)、組裝方面進(jìn)行實(shí)現(xiàn),通過(guò)利用面向接口方式的編程、AOP及依賴注入,一來(lái)讓各層耦合度降低,二來(lái)對(duì)系統(tǒng)在移植、開發(fā)效率、維護(hù)上都有提高。
Hibernate對(duì)JDBC做封裝,而在底層訪問上,JDBC給數(shù)據(jù)庫(kù)支撐。這樣程序運(yùn)行時(shí),只要JDBC給數(shù)據(jù)庫(kù)做驅(qū)動(dòng),便能利用對(duì)POJO操作的辦法,對(duì)任一數(shù)據(jù)庫(kù)都可隨意操縱。如此便可把JDBC繞過(guò),讓JDBC的諸多代碼都省下來(lái),省下的精力關(guān)注在頁(yè)面及業(yè)務(wù)邏輯方面更好,并一定程度對(duì)邏輯代碼的上層做保護(hù),讓組件重用輕松完成。
4 結(jié)束語(yǔ)
眼下把3種框架合理整合搭建為新型的SSH框架已被廣泛采取。首先,3種框架都是開源的,無(wú)論開發(fā)背景還是文檔資料上都是既免費(fèi)又豐富的。其次,此框架下的系統(tǒng),在持久化、業(yè)務(wù)邏輯、控制及視圖方面均層次分明,不同角色具有不一樣的職能,在系統(tǒng)復(fù)用、升級(jí)、運(yùn)行、移植、維護(hù)及擴(kuò)充上均十分有利。最后,開發(fā)周期被再次降低,維護(hù)成本再次下降,效率上升,加之交互過(guò)程中讓模塊耦合性大大降低,使得內(nèi)聚性大大加強(qiáng),系統(tǒng)健壯性也大大提升。
參考文獻(xiàn):
[1]沈建東,龔潘晶,謝東然.基于JavaEE架構(gòu)的高職院校辦公自動(dòng)化系統(tǒng)的研究與設(shè)計(jì)[J].科技致富向?qū)В?010(08):53-58.
[2]解智,張俐,張維璽.基于JavaEE輕量級(jí)架構(gòu)的安全電子拍賣系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)咨詢(科技-管理),2012(12):32-40.
[3]馮遠(yuǎn)正,裴云,劉雅琴.基于JavaEE多模式的旅游電子商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2012(17):23-36.
[4]唐倩,張偉,李偉誠(chéng).基于SSH架構(gòu)的智能社區(qū)信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2012(12):32-40.
[5]劉軍,陳敬勇,邱占芝.基于SSH架構(gòu)電工電子網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室教學(xué)信息管理web平臺(tái)設(shè)計(jì)與研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012(17):23-36.
作者簡(jiǎn)介:宦臣(1985-),男,江蘇揚(yáng)州人,本科,研究方向:計(jì)算機(jī)應(yīng)用。
作者單位:南理工泰州科技學(xué)院,江蘇泰州 225300
看了“畢業(yè)論文怎么寫”的人還看: