




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)實(shí)習(xí)報(bào)告二O一四年四月 評(píng) 定 意 見畢業(yè)實(shí)習(xí)成績: 指導(dǎo)教師對(duì)畢業(yè)實(shí)習(xí)的評(píng)語: 指導(dǎo)教師簽章: 2014年 4 月 1 日畢業(yè)實(shí)習(xí)指導(dǎo)小組的評(píng)定意見: 教學(xué)院長簽章: 系主任簽章: 2014 年 4 月 3 日SSH畢業(yè)設(shè)計(jì)實(shí)習(xí)報(bào)告實(shí)習(xí)地點(diǎn):J13-428實(shí)驗(yàn)室實(shí)習(xí)時(shí)間:2014年3月4日3月31日 由于本次畢設(shè)打算采用J2EE技術(shù)做一個(gè)基于B/S架構(gòu)的智能小區(qū)系統(tǒng),為了提高系統(tǒng)的可維護(hù)性,使系統(tǒng)更加具有層次性以及滿足以后需求的變更,我決定采用Struts2+Hibernate+Spring進(jìn)行開發(fā)。因此在這為期一個(gè)月的時(shí)間里,我學(xué)習(xí)了SSH框架的原理、整合和使用。下面是我對(duì)SSH框架的
2、學(xué)習(xí)收獲。 1. Struts2+Hibernate+Spring簡介 學(xué)習(xí)過編程開發(fā)的人都應(yīng)聽過框架這個(gè)名字,所謂的框架是指整個(gè)系統(tǒng)或系統(tǒng)的一部分的可重用設(shè)計(jì),由一組抽象的類及其實(shí)例間的相互作用方式組成??蚣芤话憔哂屑床寮从玫目芍赜眯浴⒊墒斓姆€(wěn)定性以及良好的團(tuán)隊(duì)協(xié)作性。J2EE復(fù)雜的多層結(jié)構(gòu)決定了大型的J2EE項(xiàng)目需要運(yùn)用框架和設(shè)計(jì)模式來控制軟件質(zhì)量。目前,市場上出現(xiàn)了一些商業(yè)的、開源的基于J2EE的應(yīng)用框架,其中主流的框架技術(shù)有:基于MVC模式的Struts框架和基于IoC模式的 Spring框架以及對(duì)象/關(guān)系映射框架Hibernate等。1表示層框架Struts2 Strut
3、s2是一個(gè)在JSP Model2基礎(chǔ)上實(shí)現(xiàn)的MVC框架,主要分為模型(Model)、視圖(Viewer)和控制器(Controller)三部分,其主要的設(shè)計(jì)理念是通 過控制器將表現(xiàn)邏輯和業(yè)務(wù)邏輯解耦,以提高系統(tǒng)的可維護(hù)性、可擴(kuò)展性和可重用性。Struts2框架的體系結(jié)構(gòu)主要分為:1視圖:視圖部分主要由JSP頁面組成,其中沒有流程邏輯、業(yè)務(wù)邏輯和模型信息,只要標(biāo)記。Struts自身包含了一組標(biāo)記庫(TagLib),這也是Struts的精華之一,靈活運(yùn)用它們可以簡化JSP頁面的代碼,提高開發(fā)效率。2控制器:Struts中的Controller主要是其自身提供的ActionServlet。Actio
4、nServlet接收所有來自客戶端的請(qǐng)求并根據(jù)配置文件(struts-config.xml)中的定義將控制轉(zhuǎn)移到適當(dāng)?shù)腁ction對(duì)象。3模型:Struts沒有定義具體Model層的實(shí)現(xiàn),Model層通常是和業(yè)務(wù)邏輯緊密相關(guān)的,有持續(xù)化的要求。目前在商業(yè)領(lǐng)域和開源世界,都有一些優(yōu)秀的工具可以為Model層的開發(fā)提供便利。2業(yè)務(wù)邏輯層框架Spring Spring是一個(gè)解決了許多J2EE開發(fā)中常見問題并能夠替代EJB技術(shù)的強(qiáng)大的輕量級(jí)框架。這里所說的輕量級(jí)指的是Spring框架本身,而不是指Spring只能用于輕量級(jí)的應(yīng)用開發(fā)。Spring的輕盈表達(dá)在其框架本身的基礎(chǔ)結(jié)構(gòu)以及對(duì)其他應(yīng)用工具的支持
5、和裝配能力。與EJB這種龐然大物相比,Spring可使程序研發(fā)人員把各個(gè)技術(shù)層次之間的風(fēng)險(xiǎn)降低。Spring框架的核心是控制翻轉(zhuǎn)IoC(Inversion of Control)/依賴注入DI(Dependence Injection)機(jī)制。IoC是指由容器中控制組件之間的關(guān)系這里,容器是指為組件提供特定服務(wù)和技術(shù)支持的一個(gè)標(biāo)準(zhǔn)化的運(yùn)行時(shí)的環(huán)境而非傳統(tǒng)實(shí)現(xiàn)中由程序代碼直接操控,這種將控制權(quán)由程序代碼到外部容器的轉(zhuǎn)移,稱為“翻轉(zhuǎn)”。DI是對(duì)IoC更形象的解釋,即由容器在運(yùn)行期間動(dòng)態(tài)地將依賴關(guān)系(如構(gòu)造參數(shù)、構(gòu)造對(duì)象或接口)注入到組件之中。Spring采用設(shè)值注入(使用Setter方法實(shí)現(xiàn)依賴)和
6、構(gòu)造子注入(在構(gòu)造方法中實(shí)現(xiàn)依賴)的機(jī)制,通過配置文件管理組建的協(xié)作對(duì)象,創(chuàng)建可以構(gòu)造組件的IoC容器。這樣,不需要編寫工廠模式、單例模式或者其他構(gòu)造的方法,就可以通過容器直接獲取所需的業(yè)務(wù)組件。3數(shù)據(jù)持久層框架Hibernate O/R mapping技術(shù)是為了解決關(guān)系型數(shù)據(jù)庫和面向?qū)ο蟮某绦蛟O(shè)計(jì)之間不匹配的矛盾而產(chǎn)生的。Hibernate是目前最為流行的O/R mapping框架,它在關(guān)系型數(shù)據(jù)庫和Java對(duì)象之間做了一個(gè)自動(dòng)映射,使得程序員可以以非常簡單的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。Hibernate通過對(duì)JDBC的封裝,向程序員屏蔽了底層的數(shù)據(jù)庫操作,使程序員專注于OO程序的開發(fā),有助于提
7、高開發(fā)效率。程序員訪問數(shù)據(jù)庫所需要做的就是為持久化對(duì)象編制xml映射文件。底層數(shù)據(jù)庫的改變只需要簡單地更改初始化配置文件(hibernate.cfg.xml或者perties)即可,不會(huì)對(duì)應(yīng)用程序產(chǎn)生影響。 Hibernate有自己的面向?qū)ο蟮牟樵冋Z言HQL,HQL功能強(qiáng)大,支持目前大部分主流的數(shù)據(jù)庫,如Oracle、DB2、MySQL、Microsoft SQL Server等,是目前應(yīng)用最廣泛的O/R映射工具。Hibernate為快速開發(fā)應(yīng)用程序提供了底層的支持。 2. Struts2+Hibernate+Spring開發(fā)的優(yōu)勢 采用SSH框架開發(fā)系統(tǒng),其優(yōu)勢具體
8、表現(xiàn)在如下:1開發(fā)效率:框架的使用并不是使得開發(fā)效率與之提高,相反可能會(huì)降低系統(tǒng)的開發(fā)效率。那么為什么還要使用框架呢?軟件工程是個(gè)特殊的行業(yè),不同于傳統(tǒng)的工業(yè),例如電器、建筑及汽車等行業(yè)。這些行業(yè)的產(chǎn)品一旦開發(fā)出來,交付用戶使用后將很少需要后續(xù)的維護(hù)。但軟件行業(yè)不同,軟件產(chǎn)品的后期運(yùn)行維護(hù)是個(gè)巨大的工程,單純從前期開發(fā)時(shí)間上考慮其開發(fā)效率是不理智的,也是不公平的。眾所周知,對(duì)于傳統(tǒng)的ASP和 PHP等腳本站點(diǎn)技術(shù),將整個(gè)站點(diǎn)的業(yè)務(wù)邏輯和表現(xiàn)邏輯都混雜在ASP或PHP頁面里,從而導(dǎo)致頁面的可讀性相當(dāng)差,可維護(hù)性非常低。即使需要簡單改變頁面的按鈕,也不得不打開頁面文件,冒著破壞系統(tǒng)的風(fēng)險(xiǎn)。但采用嚴(yán)
9、格分層J2EE架構(gòu),則可完全防止這個(gè)問題。對(duì)表現(xiàn)層的修改即使發(fā)生錯(cuò)誤,也絕對(duì)不會(huì)將錯(cuò)誤擴(kuò)展到業(yè)務(wù)邏輯層,更不會(huì)影響持久層。因此,采用J2EE分層架構(gòu),即使前期的開發(fā)效率稍微低一點(diǎn),但也是值得的。2需求變更:軟件的需要并不是一成不變的,客戶對(duì)軟件的需求,隨著軟件開發(fā)過程的深入而不斷清晰明確起來。因此,常常遇到軟件開發(fā)到一定程度時(shí),由于客戶對(duì)軟件需求發(fā)生了變化,使得軟件的實(shí)現(xiàn)不得不隨之改變。當(dāng)軟件實(shí)現(xiàn)需要改變時(shí),是否可以盡可能多地保留軟件的部分,盡可能少地改變軟件的實(shí)現(xiàn),從而滿足客戶需求的變更?答案是采用優(yōu)秀的解耦架構(gòu)。這種架構(gòu)就是J2EE的分層架構(gòu),在優(yōu)秀的分層架構(gòu)里,控制層依賴于業(yè)務(wù)邏輯層,但
10、絕不與任何具體的業(yè)務(wù)邏輯組件耦合,只與接口耦合;同樣,業(yè)務(wù)邏輯層依賴于DAO層,也不會(huì)與任何具體的DAO組件耦合,而是面向接口編程。采用這種方式的軟件實(shí)現(xiàn),即使軟件的部分發(fā)生改變,其他部分也盡可能不要改變。3技術(shù)更新與系統(tǒng)重構(gòu):軟件行業(yè)的技術(shù)更新很快,雖然軟件行業(yè)的發(fā)展不快,但小范圍的技術(shù)更新特別快。一旦由于客觀環(huán)境的變化,不得不更換技術(shù)時(shí),如何保證系統(tǒng)的改變最小呢?答案還是選擇優(yōu)秀的架構(gòu)。在傳統(tǒng)的Model 1的程序結(jié)構(gòu)中,只要有一點(diǎn)小的需求發(fā)生改變,將意味著放棄整個(gè)頁面?;蛘吒膶?。雖然前期的開發(fā)速度快,除非可以保證以后永遠(yuǎn)不會(huì)改變應(yīng)用的結(jié)構(gòu),否則不要采用Model 1的結(jié)構(gòu)。采用Hiber
11、nate作為持久層技術(shù)的最大的好處在于:可以完全以面向?qū)ο蟮姆绞竭M(jìn)行系統(tǒng)分析、系統(tǒng)設(shè)計(jì)。DAO模式需要為每個(gè)DAO組件編寫DAO接口,同時(shí)至少提供一個(gè)實(shí)現(xiàn)類,根據(jù)不同需要,可能有多個(gè)實(shí)現(xiàn)類。用Spring容器代替DAO工廠。通常情況下,引入接口就不可防止需要引入工廠來負(fù)責(zé)DAO組件的生成。Spring實(shí)現(xiàn)了兩種基本模式:單態(tài)模式和工廠模式。而使用Spring可以完全防止使用工廠模式,因?yàn)镾pring就是個(gè)功能非常強(qiáng)大的工廠。因此,完全可以讓Spring充當(dāng)DAO工廠。由Spring充當(dāng)DAO工廠時(shí),無須程序員自己實(shí)現(xiàn)工廠模式,只需要將DAO組件配置在Spring容器中,由 ApplicationContext負(fù)責(zé)管理DAO組件的創(chuàng)建即可。借助于Spring提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使用 DAO實(shí)例。 上面所述的優(yōu)勢是在一個(gè)月的學(xué)習(xí)時(shí)間里逐漸總結(jié)和體會(huì)到的,并不全面和深刻,只有在不斷的使用和整合中才能不斷加深對(duì)于SSH的理解和掌握,需要更深一步的學(xué)習(xí)。實(shí)習(xí)體會(huì):通過一個(gè)月對(duì)于Struts2+Hibernate+Spring的學(xué)習(xí),由開始的初步了解逐漸加深了對(duì)于SSH的理解,對(duì)于面向過程的編程語言到面向?qū)ο蟮木幊陶Z言的認(rèn)識(shí)更加深刻,同時(shí)在一定程度上認(rèn)識(shí)了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 法制誠信教育主題班會(huì)
- 臺(tái)球技巧課程介紹
- 學(xué)校管理的角色定位
- 幼兒園端午節(jié)知識(shí)競賽
- 醬酒知識(shí)培訓(xùn)課件
- 畢業(yè)論文答辯課件
- 字母ab教學(xué)課件
- 2025年幼兒園健康教育工作方案
- 性書法課程總結(jié)
- 2025年中班班務(wù)工作方案
- 會(huì)考學(xué)業(yè)水平測試成績單英文模板
- 壓力容器(氣瓶)風(fēng)險(xiǎn)點(diǎn)告知卡
- 斜屋面專項(xiàng)施工方案-掛瓦坡屋面(附圖)
- 自保溫砌塊施工方案
- 合成氣生產(chǎn)甲醇工藝流程圖
- T分布臨界值表
- hs編碼對(duì)照表.xls
- φ178旋轉(zhuǎn)導(dǎo)向鉆井工具設(shè)計(jì)說明書
- KIP3000故障代碼
- 《資源環(huán)境信息技術(shù)》PPT課件
- 邊坡排危土石方的施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論