


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(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、 SSHg架的學習收獲。1. Struts2+Hibernate+Spring 簡介 學習過編程開發(fā)的人都應聽過框架這個名字,所謂的框架是指整個系統(tǒng)或系 統(tǒng)的一部分的可重用設計,由一組抽象的類及其實例間的相互作用方式組成。 框架一般具有即插即用的可重用性、 成熟的穩(wěn)定性以及良好的團隊協(xié)作性。 J2EE 復雜的多層結構決定了大型的J2EE項目需要運用框架和設計模式來控制軟件質 量。目前,市場上出現(xiàn)了一些商業(yè)的、開源的基于 J2EE的應用框架,其中主流 的框架技術有:基于 MVC莫式的Struts框架和基于IoC模式的Spring框架以 及對象 / 關系映射框架 Hibernate 等。(1) 表
3、示層框架 Struts2Struts2 是一個在JSP Model2基礎上實現(xiàn)的 MVC框架,主要分為模型 (Model)、視圖(Viewer)和控制器(Controller) 三部分,其主要的設計理念是通 過控制器將表現(xiàn)邏輯和業(yè)務邏輯解耦,以提高系統(tǒng)的可維護性、可擴展性和可 重用性。 Struts2 框架的體系結構主要分為:1) 視圖:視圖部分主要由JSP頁面組成,其中沒有流程邏輯、業(yè)務邏輯和模型 信息,只要標記。 Struts 自身包含了一組標記庫 (TagLib) ,這也是 Struts 的精 華之一,靈活運用它們可以簡化 JSP頁面的代碼,提高開發(fā)效率。2) 控制器: Struts 中
4、的 Controller 主要是其自身提供的 ActionServlet 。 ActionServlet 接 收 所 有 來 自 客 戶 端 的 請 求 并 根 據(jù) 配 置 文 件 (struts-config.xml) 中的定義將控制轉移到適當?shù)?Action 對象。3) 模型: Struts 沒有定義具體 Model 層的實現(xiàn), Model 層通常是和業(yè)務邏輯緊 密相關的,有持續(xù)化的要求。目前在商業(yè)領域和開源世界,都有一些優(yōu)秀的工具可以為ModeI層的開發(fā)提供便利。(2) 業(yè)務邏輯層框架 SpringSpring是一個解決了許多J2EE開發(fā)中常見問題并能夠替代EJB技術的強大的輕量級框架。
5、 這里所說的輕量級指的是 Spring 框架本身, 而不是指 Spring 只能用于輕量級的應用開發(fā)。 Spring 的輕盈體現(xiàn)在其框架本身的基礎結構以及 對其他應用工具的支持和裝配能力。與 EJB這種龐然大物相比,Spring可使程 序研發(fā)人員把各個技術層次之間的風險降低。 Spring 框架的核心是控制翻轉IoC(Inversion of Control)/ 依賴注入 DI(Dependence Injection) 機制。 IoC 是指由容器中控制組件之間的關系(這里,容器是指為組件提供特定服務和技 術支持的一個標準化的運行時的環(huán)境)而非傳統(tǒng)實現(xiàn)中由程序代碼直接操控, 這種將控制權由程序
6、代碼到外部容器的轉移,稱為“翻轉” 。DI是對loC更形象 的解釋,即由容器在運行期間動態(tài)地將依賴關系 ( 如構造參數(shù)、構造對象或接口 ) 注入到組件之中。 Spring 采用設值注入 (使用 Setter 方法實現(xiàn)依賴 )和構造子注 入(在構造方法中實現(xiàn)依賴 ) 的機制,通過配置文件管理組建的協(xié)作對象,創(chuàng)建 可以構造組件的 loC 容器。這樣,不需要編寫工廠模式、單例模式或者其他構 造的方法,就可以通過容器直接獲取所需的業(yè)務組件。(3)數(shù)據(jù)持久層框架 HibernateO/R mapping技術是為了解決關系型數(shù)據(jù)庫和面向對象的程序設計之間不匹配的矛盾而產(chǎn)生的。 Hibernate 是目前最
7、為流行的 O/Rmapping 框架,它在關 系型數(shù)據(jù)庫和 Java 對象之間做了一個自動映射,使得程序員可以以非常簡單的 方式實現(xiàn)對數(shù)據(jù)庫的操作。Hibernate通過對JDBC的封裝,向程序員屏蔽了底 層的數(shù)據(jù)庫操作,使程序員專注于 OC程序的開發(fā),有助于提高開發(fā)效率。程序 員訪問數(shù)據(jù)庫所需要做的就是為持久化對象編制 xml 映射文件。底層數(shù)據(jù)庫的 改 變 只 需 要 簡 單 地 更 改 初 始 化 配 置 文 件 (hibernate.cfg.xml 或 者 perties) 即可, 不會對應用程序產(chǎn)生影響。 Hibernate 有自己的 面向對象的查詢語言 H
8、QL HQL功能強大,支持目前大部分主流的數(shù)據(jù)庫,如 Oracle、DB2 MySQL Microsoft SQL Server 等,是目前應用最廣泛的 0/R映 射工具。 Hibernate 為快速開發(fā)應用程序提供了底層的支持。2. Struts2+Hibernate+Spring 開發(fā)的優(yōu)勢采用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è)
9、不同,軟件產(chǎn)品的后期運 行維護是個巨大的工程,單純從前期開發(fā)時間上考慮其開發(fā)效率是不理智的, 也是不公平的。眾所周知,對于傳統(tǒng)的ASP和PHP等腳本站點技術,將整個站點的業(yè)務邏輯和表現(xiàn)邏輯都混雜在 ASP或PHP頁面里,從而導致頁面的可讀性 相當差,可維護性非常低。即使需要簡單改變頁面的按鈕,也不得不打開頁面 文件,冒著破壞系統(tǒng)的風險。但采用嚴格分層J2EE架構,則可完全避免這個問題。對表現(xiàn)層的修改即使發(fā)生錯誤,也絕對不會將錯誤擴展到業(yè)務邏輯層,更 不會影響持久層。因此,采用J2EE分層架構,即使前期的開發(fā)效率稍微低一點, 但也是值得的。(2)需求變更:軟件的需要并不是一成不變的,客戶對軟件的
10、需求,隨著軟件 開發(fā)過程的深入而不斷清晰明確起來。因此,常常遇到軟件開發(fā)到一定程度時, 由于客戶對軟件需求發(fā)生了變化,使得軟件的實現(xiàn)不得不隨之改變。當軟件實 現(xiàn)需要改變時,是否可以盡可能多地保留軟件的部分,盡可能少地改變軟件的 實現(xiàn),從而滿足客戶需求的變更?答案是采用優(yōu)秀的解耦架構。這種架構 就是J2EE的分層架構,在優(yōu)秀的分層架構里,控制層依賴于業(yè)務邏輯層,但絕 不與任何具體的業(yè)務邏輯組件耦合,只與接口耦合;同樣,業(yè)務邏輯層依賴于 DAC層,也不會與任何具體的DAC組件耦合,而是面向接口編程。采用這種方式 的軟件實現(xiàn),即使軟件的部分發(fā)生改變,其他部分也盡可能不要改變。(3)技術更新與系統(tǒng)重構
11、:軟件行業(yè)的技術更新很快,雖然軟件行業(yè)的發(fā)展不 快,但小范圍的技術更新特別快。一旦由于客觀環(huán)境的變化,不得不更換技術 時,如何保證系統(tǒng)的改變最小呢?答案還是選擇優(yōu)秀的架構。在傳統(tǒng)的 Model 1 的程序結構中,只要有一點小的需求發(fā)生改變,將意味著放棄整個頁面。或者 改寫。雖然前期的開發(fā)速度快,除非可以保證以后永遠不會改變應用的結構, 否則不要采用 Model 1 的結構。采用 Hibernate 作為持久層技術的最大的好處 在于:可以完全以面向對象的方式進行系統(tǒng)分析、系統(tǒng)設計。DAO莫式需要為每個DAC組件編寫DAC接口,同時至少提供一個實現(xiàn)類,根據(jù)不 同需要,可能有多個實現(xiàn)類。用 Spri
12、ng容器代替DAO工廠。通常情況下,引入 接口就不可避免需要引入工廠來負責 DAO組件的生成。Spring實現(xiàn)了兩種基本 莫式:單態(tài)莫式和工廠莫式。而使用 Spring 可以完全避免使用工廠莫式,因為 Spring就是個功能非常強大的工廠。因此,完全可以讓Spring充當DAC工廠。由Spring充當DAO工廠時,無須程序員自己實現(xiàn)工廠模式,只需要將DAC組件配置在Spring容器中,由ApplicationContext負責管理DAC組件的創(chuàng)建即可。借助于 Spring 提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使 用 DAC 實例。上面所述的優(yōu)勢是在一個月的學習時間里逐漸總結和體會到的,并不全面 和深刻,只有在不斷的使用和整合中才能不斷加深對于SSH的理解和掌握,需要更深一步的學習。實習體會: 通過一個月對于 Struts2+Hibernate+Spring 的學習,由開始的初步 了解逐漸加深了對于SSH的理解,對于面向過程的編程語言到面向對象的編程 語言的認識更加深刻,同時在一定
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年消防設施操作員之消防設備基礎知識模擬考試試卷A卷含答案
- 2019-2025年消防設施操作員之消防設備中級技能題庫練習試卷B卷附答案
- 2019-2025年消防設施操作員之消防設備基礎知識題庫練習試卷A卷附答案
- 人民防空知識培訓課件
- 酒店推廣傭金合同(2篇)
- 采購分包付款合同(2篇)
- 宮頸癌疫苗知識培訓課件
- 2025年愛國知識競賽題及答案(67題)
- 文化遺產(chǎn)保護與傳承合作協(xié)議
- 細胞制備服務合作協(xié)議
- DB11T 213-2014 城鎮(zhèn)綠地養(yǎng)護管理規(guī)范
- 2022電力監(jiān)控系統(tǒng)網(wǎng)絡安全監(jiān)測裝置說明書
- 2024年國家林業(yè)和草原局直屬事業(yè)單位招聘應屆畢業(yè)生231人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 健合集團在線測評原題
- 義務教育版(2024)五年級 信息科技 《第3課 游戲體驗尋規(guī)律》教學設計
- 含有滯納金合同模板
- 《工程熱力學》(第四版)全冊配套完整課件
- 和父親斷絕聯(lián)系協(xié)議書范本
- 5 建立良好的公共秩序《共同建設有序生活》(第二課時)(教學設計)2023-2024學年統(tǒng)編版道德與法治五年級下冊
- 中國新聞事業(yè)史智慧樹知到答案2024年山東大學
- Inventor基礎教程與實戰(zhàn)技能 課件匯 第1-8章 認識Inventor2023-設計可視化
評論
0/150
提交評論