版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)實習報告二O一四年四月 評 定 意 見畢業(yè)實習成績: 指導教師對畢業(yè)實習的評語: 指導教師(簽章): 2014年 4 月 1 日畢業(yè)實習指導小組的評定意見: 教學院長(簽章): 系主任(簽章): 2014 年 4 月 3 日SSH畢業(yè)設計實習報告實習地點:J13-428實驗室實習時間:2014年3月4日3月31日 由于本次畢設打算采用J2EE技術做一個基于B/S架構的智能小區(qū)系統(tǒng),為了提高系統(tǒng)的可維護性,使系統(tǒng)更加具有層次性以及滿足以后需求的變更,我決定采用Struts2+Hibernate+Spring進行開發(fā)。因此在這為期一個月的時間里,我學習了SSH框架的原理、整合和使用。下面是我對
2、SSH框架的學習收獲。 1. Struts2+Hibernate+Spring簡介 學習過編程開發(fā)的人都應聽過框架這個名字,所謂的框架是指整個系統(tǒng)或系統(tǒng)的一部分的可重用設計,由一組抽象的類及其實例間的相互作用方式組成??蚣芤话憔哂屑床寮从玫目芍赜眯浴⒊墒斓姆€(wěn)定性以及良好的團隊協(xié)作性。J2EE復雜的多層結構決定了大型的J2EE項目需要運用框架和設計模式來控制軟件質(zhì)量。目前,市場上出現(xiàn)了一些商業(yè)的、開源的基于J2EE的應用框架,其中主流的框架技術有:基于MVC模式的Struts框架和基于IoC模式的 Spring框架以及對象/關系映射框架Hibernate等。(1)表示層框架Struts2
3、0; Struts2是一個在JSP Model2基礎上實現(xiàn)的MVC框架,主要分為模型(Model)、視圖(Viewer)和控制器(Controller)三部分,其主要的設計理念是通 過控制器將表現(xiàn)邏輯和業(yè)務邏輯解耦,以提高系統(tǒng)的可維護性、可擴展性和可重用性。Struts2框架的體系結構主要分為:1)視圖:視圖部分主要由JSP頁面組成,其中沒有流程邏輯、業(yè)務邏輯和模型信息,只要標記。Struts自身包含了一組標記庫(TagLib),這也是Struts的精華之一,靈活運用它們可以簡化JSP頁面的代碼,提高開發(fā)效率。2)控制器:Struts中的Controller主要是其自身提供的ActionSer
4、vlet。ActionServlet接收所有來自客戶端的請求并根據(jù)配置文件(struts-config.xml)中的定義將控制轉(zhuǎn)移到適當?shù)腁ction對象。3)模型:Struts沒有定義具體Model層的實現(xiàn),Model層通常是和業(yè)務邏輯緊密相關的,有持續(xù)化的要求。目前在商業(yè)領域和開源世界,都有一些優(yōu)秀的工具可以為Model層的開發(fā)提供便利。(2)業(yè)務邏輯層框架Spring Spring是一個解決了許多J2EE開發(fā)中常見問題并能夠替代EJB技術的強大的輕量級框架。這里所說的輕量級指的是Spring框架本身,而不是指Spring只能用于輕量級的應用開發(fā)。Spring的輕盈體現(xiàn)在其框架本身的基礎結
5、構以及對其他應用工具的支持和裝配能力。與EJB這種龐然大物相比,Spring可使程序研發(fā)人員把各個技術層次之間的風險降低。Spring框架的核心是控制翻轉(zhuǎn)IoC(Inversion of Control)/依賴注入DI(Dependence Injection)機制。IoC是指由容器中控制組件之間的關系(這里,容器是指為組件提供特定服務和技術支持的一個標準化的運行時的環(huán)境)而非傳統(tǒng)實現(xiàn)中由程序代碼直接操控,這種將控制權由程序代碼到外部容器的轉(zhuǎn)移,稱為“翻轉(zhuǎn)”。DI是對IoC更形象的解釋,即由容器在運行期間動態(tài)地將依賴關系(如構造參數(shù)、構造對象或接口)注入到組件之中。Spring采用設值注入(使
6、用Setter方法實現(xiàn)依賴)和構造子注入(在構造方法中實現(xiàn)依賴)的機制,通過配置文件管理組建的協(xié)作對象,創(chuàng)建可以構造組件的IoC容器。這樣,不需要編寫工廠模式、單例模式或者其他構造的方法,就可以通過容器直接獲取所需的業(yè)務組件。(3)數(shù)據(jù)持久層框架Hibernate O/R mapping技術是為了解決關系型數(shù)據(jù)庫和面向?qū)ο蟮某绦蛟O計之間不匹配的矛盾而產(chǎn)生的。Hibernate是目前最為流行的O/R mapping框架,它在關系型數(shù)據(jù)庫和Java對象之間做了一個自動映射,使得程序員可以以非常簡單的方式實現(xiàn)對數(shù)據(jù)庫的操作。Hibernate通過對JDBC的封裝,向程序員屏蔽了底層的數(shù)據(jù)庫操作,使程
7、序員專注于OO程序的開發(fā),有助于提高開發(fā)效率。程序員訪問數(shù)據(jù)庫所需要做的就是為持久化對象編制xml映射文件。底層數(shù)據(jù)庫的改變只需要簡單地更改初始化配置文件(hibernate.cfg.xml或者perties)即可,不會對應用程序產(chǎn)生影響。 Hibernate有自己的面向?qū)ο蟮牟樵冋Z言HQL,HQL功能強大,支持目前大部分主流的數(shù)據(jù)庫,如Oracle、DB2、MySQL、Microsoft SQL Server等,是目前應用最廣泛的O/R映射工具。Hibernate為快速開發(fā)應用程序提供了底層的支持。 2. Struts2+Hibernate+Spring開發(fā)的優(yōu)勢
8、采用SSH框架開發(fā)系統(tǒng),其優(yōu)勢具體表現(xiàn)在如下:(1)開發(fā)效率:框架的使用并不是使得開發(fā)效率與之提高,相反可能會降低系統(tǒng)的開發(fā)效率。那么為什么還要使用框架呢?軟件工程是個特殊的行業(yè),不同于傳統(tǒng)的工業(yè),例如電器、建筑及汽車等行業(yè)。這些行業(yè)的產(chǎn)品一旦開發(fā)出來,交付用戶使用后將很少需要后續(xù)的維護。但軟件行業(yè)不同,軟件產(chǎn)品的后期運行維護是個巨大的工程,單純從前期開發(fā)時間上考慮其開發(fā)效率是不理智的,也是不公平的。眾所周知,對于傳統(tǒng)的ASP和 PHP等腳本站點技術,將整個站點的業(yè)務邏輯和表現(xiàn)邏輯都混雜在ASP或PHP頁面里,從而導致頁面的可讀性相當差,可維護性非常低。即使需要簡單改變頁面的按鈕,也不得不打開
9、頁面文件,冒著破壞系統(tǒng)的風險。但采用嚴格分層J2EE架構,則可完全避免這個問題。對表現(xiàn)層的修改即使發(fā)生錯誤,也絕對不會將錯誤擴展到業(yè)務邏輯層,更不會影響持久層。因此,采用J2EE分層架構,即使前期的開發(fā)效率稍微低一點,但也是值得的。(2)需求變更:軟件的需要并不是一成不變的,客戶對軟件的需求,隨著軟件開發(fā)過程的深入而不斷清晰明確起來。因此,常常遇到軟件開發(fā)到一定程度時,由于客戶對軟件需求發(fā)生了變化,使得軟件的實現(xiàn)不得不隨之改變。當軟件實現(xiàn)需要改變時,是否可以盡可能多地保留軟件的部分,盡可能少地改變軟件的實現(xiàn),從而滿足客戶需求的變更?答案是采用優(yōu)秀的解耦架構。這種架構就是J2EE的分層架構,在優(yōu)
10、秀的分層架構里,控制層依賴于業(yè)務邏輯層,但絕不與任何具體的業(yè)務邏輯組件耦合,只與接口耦合;同樣,業(yè)務邏輯層依賴于DAO層,也不會與任何具體的DAO組件耦合,而是面向接口編程。采用這種方式的軟件實現(xiàn),即使軟件的部分發(fā)生改變,其他部分也盡可能不要改變。(3)技術更新與系統(tǒng)重構:軟件行業(yè)的技術更新很快,雖然軟件行業(yè)的發(fā)展不快,但小范圍的技術更新特別快。一旦由于客觀環(huán)境的變化,不得不更換技術時,如何保證系統(tǒng)的改變最小呢?答案還是選擇優(yōu)秀的架構。在傳統(tǒng)的Model 1的程序結構中,只要有一點小的需求發(fā)生改變,將意味著放棄整個頁面?;蛘吒膶?。雖然前期的開發(fā)速度快,除非可以保證以后永遠不會改變應用的結構,否
11、則不要采用Model 1的結構。采用Hibernate作為持久層技術的最大的好處在于:可以完全以面向?qū)ο蟮姆绞竭M行系統(tǒng)分析、系統(tǒng)設計。DAO模式需要為每個DAO組件編寫DAO接口,同時至少提供一個實現(xiàn)類,根據(jù)不同需要,可能有多個實現(xiàn)類。用Spring容器代替DAO工廠。通常情況下,引入接口就不可避免需要引入工廠來負責DAO組件的生成。Spring實現(xiàn)了兩種基本模式:單態(tài)模式和工廠模式。而使用Spring可以完全避免使用工廠模式,因為Spring就是個功能非常強大的工廠。因此,完全可以讓Spring充當DAO工廠。由Spring充當DAO工廠時,無須程序員自己實現(xiàn)工廠模式,只需要將DAO組件配置在Spring容器中,由 ApplicationContext負責管理DAO組件的創(chuàng)建即可。借助于Spring提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使用 DAO實例。 上面所述的優(yōu)勢是在一個月的學習時間里逐漸總結和體會到的,并不全面和深刻,只有在不斷的使用和整合中才能不斷加深對于SSH的理解和掌握,需要更深一步的學習。實習體會:通過一個月對于Struts2+Hibernate+Spring的學習,由開始的初步了解逐漸加深了對于SSH的理解,對于面向過程的編程語言到面向?qū)ο蟮木幊陶Z言的認識更加深刻,同時在一定程度上認識了面向接口編程和面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年某影視公司與編劇關于電影劇本創(chuàng)作的合同
- 2024年特許經(jīng)營合同標的界定
- 2024年度建筑工程合同合同管理中的合同糾紛預防與處理3篇
- 2025版新教材高考英語復習特訓卷階段檢測卷二
- 2025版高考數(shù)學一輪總復習綜合測試卷二
- 《第三單元 網(wǎng)絡交流:14 郵件傳作品》教學實錄-2024-2025學年浙江攝影版信息技術四年級上冊
- 2024年度盆栽租賃合同違約責任規(guī)定3篇
- 2024年度住宅小區(qū)施工工裝綠色施工服務合同2篇
- 2024年標準電腦設備采購合同范本版
- 2024版賓館產(chǎn)權式酒店投資管理合同樣本3篇
- DL∕T 1455-2015 電力系統(tǒng)控制類軟件安全性及其測評技術要求
- 茶葉風味科學-制茶與評茶智慧樹知到期末考試答案章節(jié)答案2024年浙江大學
- 巡檢考試試題
- 提高維持性血液透析患者自體動靜脈內(nèi)瘺繩梯法穿刺率PDCA
- 【我國新能源汽車發(fā)展探究文獻綜述4000字】
- 產(chǎn)科危急重癥早期識別中國專家共識(2024年版)要點解讀
- 農(nóng)學概論智慧樹知到期末考試答案章節(jié)答案2024年四川農(nóng)業(yè)大學
- 幼兒園學情分析小班
- 小學語文課題研究中期報告
- 體育專業(yè)學生學情分析總結報告
- 肩痛診斷與治療
評論
0/150
提交評論