




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核 心期刊論文。 QQ:757518360 電話: 01087832641. 湖湖南南對對外外經(jīng)經(jīng)濟濟貿(mào)貿(mào)易易職職業(yè)業(yè)學學院院 畢畢 業(yè)業(yè) 論論 文文 論論文文題題目目: 基基于于 j ja av va a 的的博博客客網(wǎng)網(wǎng)站站設設計計 英英文文題題目目: 作作者者姓姓名名: 所所在在系系部部: 服務外包學院 專專業(yè)業(yè)班班級級: 大網(wǎng)絡 0701 班 指指導導教教師師: 完完成成日日期期: 2010 年 06 月 05 日 評評語語 等等級級指指導導教教師師簽簽名名: 二二一一年年六六月月五五日日 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核 心期刊論文。 QQ:757518360 電話: 01087832641. I 目目錄錄 目錄.I 摘要 III 前言 .V 文獻綜述 .I 第 1 章 緒論 .1 第 1 節(jié)背景 .1 第 2 節(jié)研究的目的與意義 .2 第 2 章 設計簡介及設計方案 .3 第 1 節(jié)設計原則 3 第 2 節(jié)運行架構 3 第 3 節(jié)設計方案 4 第 3 章 相關技術介紹 5 第 1 節(jié)MVC 簡介 5 第 2 節(jié)SPRING 的起源和背景 6 第 3 節(jié)HIBERNATE 概述 7 第 4 章 需求分析 8 第 1 節(jié)注冊博友 8 第 2 節(jié)普通用戶 9 第 5 章 系統(tǒng)架構設計 11 第 1 節(jié)系統(tǒng)架構說明: .12 第 2 節(jié)HIBERNATE層 .12 第 3 節(jié)實現(xiàn) SERVICE 層 18 第 4 節(jié)MVC 層實現(xiàn)20 設計結果及對設計結果的分析.25 全文總結 .28 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核 心期刊論文。 QQ:757518360 電話: 01087832641. II 致謝 30 參考文獻 .31 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核 心期刊論文。 QQ:757518360 電話: 01087832641. III 摘要 越來越多的網(wǎng)絡用戶希望能夠在網(wǎng)絡平臺上更多地展現(xiàn)自己的個性,更方便 地與他人互動交流 ,擁有一個自己獨立的空間 ,隨著 Web2.0 時代的到來,一 個新的概念出現(xiàn)了 博客。 首先介紹了博客網(wǎng)站設計的意義和背景,主流 博客網(wǎng)站的主要功能 。重點 介紹了基于 J2EE 架構的博客網(wǎng)站設計方案,實現(xiàn)的主要功能。 其次,重點講述了博客網(wǎng)站的業(yè)務 邏輯層和持久層的設計與開發(fā)過程中所 涉及的技術 及開源框架。系統(tǒng)如何以 Spring 框架為核心,向下整合 Hibernate 進行持久層訪問 ,向上整合 Struts 按清晰的 MVC 模式控制, 怎樣劃分應用 的層次。 簡述了頁面的請求的分發(fā) 及流程。 最后對 BLOG 網(wǎng)站開發(fā)中所碰到的一些問題,并針對這些問題提出一些解決方 案,最后對系統(tǒng)性能作出一些簡要評估,闡述了一些個人想法。 關鍵詞: 博客,J2EE, Spring,Struts,Hibernate 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核 心期刊論文。 QQ:757518360 電話: 01087832641. IV Abstract More and more network users hope to unfold there characteristics in the network platform and interact with people more conveniently. From the begining of Web 2.0, a new concept of blog emerged. Firstly, we introduce the meaning and background of designing of blog site, and then introduce the main function of the blog site briefly. We also introduce the designing scheme of blog site which is based on the architecture of J2EE. The main function carried out in our blog project is presented. Secondly, we introduce the designing of logic and permanent layer of the blog site. The technic and structure refered in the process of developing are presented. We also depict how to be around with frame of Spring, how to work with Hibernate to visit permanent layer below, how to work with Struts to control the clear MVC model up and how to divide layers of application. We also give the brief introduce of distribution and flow of pagesrequest. Finally, we discuss some problems about the blog realization and show schemes of solving problems. Brief evaluation on the performance of system is given.We give a comment on problems occurring in our work. Keywords: blog, J2EE, Spring, Struts, Hibernate 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核 心期刊論文。 QQ:757518360 電話: 01087832641. V 前言 本文介紹了 基于輕量級 J2EE 開發(fā)博客網(wǎng)站。同時利用 Spring、Struts、Hibernate、Ajax 等框架整合開發(fā) 。本文主要分為七章。 第一章主要介紹了進行 博客網(wǎng)站 的背景及意義。 第二章對 博客網(wǎng)站設計方案 做了簡要介紹。 第三章介紹了 博客網(wǎng)站的需求分析 。 第四章詳細介紹了 系統(tǒng)的架構設計,并詳細講述了通過Spring 框架,向 下整合 Hibernate 進行持久層訪問 ,利用 DAO 模式隔離 業(yè)務邏輯層與具體持 久層,向上整合 Struts 按清晰的 MVC 模式構建系統(tǒng) 。 第五章簡單講述了系統(tǒng)設計時遇到的問題及解決方案,另外對系統(tǒng)的性能 作了一個簡要 的評論及設計結果和設計結果分析 。 第六章對全文所使用的方法、結果以及目的和意義做了全面的總結,展望 java 技術在 Web 上的一些應用。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 1 第第 1 1 章章 緒緒論論 第第 1 1 節(jié)節(jié)背景背景 商業(yè)網(wǎng)站設計的主要目的一般是通過網(wǎng)站的推廣,實現(xiàn)更多網(wǎng)絡用戶的關注, 從而吸引更多的企業(yè)用戶投入更多的宣傳經(jīng)費到網(wǎng)站上。 長期的戰(zhàn)略目標,商業(yè)網(wǎng)站不僅是公共產(chǎn)品信息和服務的推廣,它還是將買家 與賣家、廠商和合作伙伴緊密結合的平臺,借助這些商業(yè)網(wǎng)站可以消除企業(yè)與客戶 之間時間與空間帶來的障礙。 Blog 博客網(wǎng)站致力于為廣大博客提供優(yōu)質博客頁面服務的商業(yè)網(wǎng)站。每個博客 都希望借助自己的博客頁面宣傳自己,而博客數(shù)量越多,網(wǎng)站的點擊率越高就越能 夠吸引廣大的企業(yè)客戶選擇該商業(yè)網(wǎng)站作為媒介,將自己的產(chǎn)品展現(xiàn)給客戶??梢?說,對這些博客網(wǎng)站而言:為博客提供良好的服務就意味著為網(wǎng)站帶來更多的商業(yè) 客戶。因此,在具體設計實現(xiàn)該博客網(wǎng)站時,主要考慮了主流博客網(wǎng)站的幾個主要 功能。 1.博客的注冊、登錄驗證功能 2.網(wǎng)絡用戶通過關鍵字搜索博文功能 3.最熱門博客頁面推薦瀏覽 4.文章詳細內容及相關評論顯示 5.博客頁面訪問量統(tǒng)計 6.博客個人文章管理維護功能 7.博客個人文章分類管理維護功能 8.博客個人友情鏈接維護功能 9.博客個人基本信息管理維護功能 10. 博客圖片上傳 及個人相冊管理 11. 網(wǎng)絡用戶寫留言,博 主查看留言。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 2 第第 2 2 節(jié)節(jié)研究的目的與意義研究的目的與意義 Blog 記載了日常發(fā)生的事情和自己的興趣愛好,把自己的思想和知識和他人分 享、交流,同時又通過 “六度空間 ”結識了更多志趣相投的朋友;而越來越多專業(yè)知 識的 Blog 的出現(xiàn),讓我們看到了 Blog 更多所蘊涵的巨大的信息價值:不同的 Blog 選擇不同的內容,收集和整理成為很多人關注的專業(yè) Blog 目前越來越 多的人獲取信息的來源是一些固定的 Blog 。隨著博客人數(shù)的增加, Blog 作為 一種新的生活方式、新的工作方式、新的學習方式已經(jīng)被越來越多的人所接受,并 且在改變傳統(tǒng)的網(wǎng)絡和社會結構:網(wǎng)絡信息不再是虛假不可驗證的,交流和溝通更 有明確的選擇和方向性,單一的思想和群體的智慧結合變的更加有效,個人出版變 成人人都可以實現(xiàn)的夢想 Blog 正在影響和改變著我們的生活 。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 3 第第 2 2 章章 設設計計簡簡介介及及設設計計方方案案 在整個 blog 進行開發(fā)之前,要確定出整個項目的整體架構,包括系統(tǒng)的選型、 運行環(huán)境的確定 及系統(tǒng)結構 設計。下面對這進行詳細介紹。 第第 1 1 節(jié)節(jié)設計原則設計原則 在進行軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進行系統(tǒng)的選型,即根據(jù)系統(tǒng)功 能的實際需求,選擇合適的開發(fā)工具及軟件架構。 blog 對系統(tǒng)的可靠性、穩(wěn)定性有比較高的要求。本系統(tǒng)設計時,比較主流的 B/S 設計有基于 JSP、ASP、PHP、CGI 及 J2EE 等模式。相比較而言 PHP 的功能 相對簡單,不適合做大程序;而CGI 效率相對較低,所以也不考慮。由于J2EE 的開源的框架中提供了 MVC 模式實現(xiàn)框架 Struts、對象關系模型中的 Hibernate 的框架及擁有事務管理 和依賴注入的 Spring。利用現(xiàn)存框架可以更快開發(fā)系統(tǒng)。 所以選擇 Java 技術作為 blog 的開發(fā)工具。 第第 2 2 節(jié)節(jié)運行架構運行架構 為了增加系統(tǒng)的吞吐量,提高并發(fā)處理客戶請求數(shù)量,系統(tǒng)采用了IBM 服 務器作為主機。在數(shù)據(jù)庫處理方面,不需要在數(shù)據(jù)層借助存儲過程及數(shù)據(jù)庫服務器 端函數(shù)封裝過多的業(yè)務邏輯,因此數(shù)據(jù)庫系統(tǒng)采用相對精巧的MySQLError! Reference source not found.。 該在線博客系統(tǒng)服務器端如果需要布置到其他主機上,則該主機必備條件如下: 1.服務器端操作系統(tǒng):獨立于操作系統(tǒng)的跨平臺系統(tǒng),客戶端MicroSoft Windows 2000 及以上; 2.數(shù)據(jù)庫: MySQL 5.0.27 版本; 3.Web 服務器: Tomcat 5.5 及以上版本,配合 MVC 設計模式及 Hibernate 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 4 開發(fā)架構; 4.客戶端運行環(huán)境:能運行 IE 5 以上或 Netscape 5 以上瀏覽器的操作系統(tǒng), 配合使用 Ajax 技術; 5.客戶端運行工具:目前的系統(tǒng)采用瀏覽器作為客戶端,為了支持Ajax 開發(fā)框架,應該選擇使用 IE 5 以上版本瀏覽器。 本網(wǎng)站以 NT 為 Web 平臺,JSP+Ajax+Servlet+JavaBean+Hibernate 為網(wǎng)站實 現(xiàn)技術,建立基于 MySQL 數(shù)據(jù)庫系統(tǒng)的核心動態(tài)網(wǎng)頁,實現(xiàn)博客網(wǎng)站前臺及博客 個人維護管理等功能模塊。 第第 3 3 節(jié)節(jié)設計方案設計方案 為了在更短的時間內實現(xiàn)博客網(wǎng)站,我們采用J2EE 架構。集成開發(fā)環(huán)境我 采用對于插件即插即用的 Eclipse,JSP 運行環(huán)境我們采用 Tomcat 應用服務器, 數(shù)據(jù)庫管理系統(tǒng)我們采用的是MYSQL,博客網(wǎng)站主要實現(xiàn)注冊用戶可以在 服 務器上開辟自己的空間,也可以發(fā)布消息,上傳文件,回復消息,從服務器發(fā)送客 戶端的數(shù)據(jù)應用 XML 來封裝. 本系統(tǒng)采用的是經(jīng)典的 J2EE 三層結構,分為表現(xiàn)層、中間層(業(yè)務邏輯層) 和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處 理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與 數(shù)據(jù)庫交互。 并利用 Spring、Hibernate、Spring 等輕量級框架實現(xiàn)三層結構的設 計。即采用的是 貧血模式,業(yè)務邏輯對象正面封裝了全部的業(yè)務邏輯方法, Web 層僅與業(yè)務邏輯組件交互即可,無須訪問底層的DAO 對象。Spring 的聲 明式事務管理將負責業(yè)務邏輯對象方法的事務性。在貧血模式下,其分層非常清晰。 Domain Object 并不具備領域對象的業(yè)務邏輯功能,僅僅是ORM 框架持久化所 需的 POJO ,僅是數(shù)據(jù)載體。貧血模型容易理解,開發(fā)便捷,但嚴重背離了面向 對象的設計思想,所有的 Domain Object 并不是完整的 Java 對象。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 5 第第 3 3 章章 相相關關技技術術介介紹紹 第第 1 1 節(jié)節(jié)MVCMVC 簡介簡介 MVC 是 Model 、View 、Controller 三個詞的縮寫,三個詞分別代表應用的 三個組成部分 :模型、視圖與控制器。三個部分以最少的稿合,協(xié)同工作,從而提 高應用的可擴展性及可維護性。起初, MVC 模式是針對相同的數(shù)據(jù)需要不同顯 示的應用而設計的,其整體的效果如圖1 所示: 圖 1 MVC 結構 在經(jīng)典的 MVC 模式中,事件由控制器處理,控制器根據(jù)事件的類型改變模型 或視圖,反之亦然。具體地說,模型維護一個視圖列表,這些視圖為獲得模型變化 通知,通常采用觀察者模式登記給模型。當模型發(fā)生改變時,模型向所有登記過的 視圖發(fā)送通知 :接下來,視圖從對應的模型中獲得信息,然后更新自己。概括起來, MVC 有如下特點。 .多個視圖可以對應一個模型。按MVC 設計模式,一個模 型對應多個視圖,可以減少代碼的復制及代碼的維護量,一旦模型發(fā)生改變,也易 于維護。 1.模型返回的數(shù)據(jù)與顯示邏輯分離。模型數(shù)據(jù)可以應用任何的顯示技術,例 如使用 JSP 頁面、Velocity 模板或者直接產(chǎn)生 Excel 文檔等。 2.應用被分隔為三層,降低了各層之間的稿合,提供了應用的可擴展性。 3.控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起, 完成不同的請求。因此,控制層可以說是包含了用戶請求權限的概念。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 6 4.MVC 更符合軟件工程化管理的精神。不同的層各司其職,每一層的組件 具有相同的特征,有利于通過工程化和工具化產(chǎn)生管理程序代碼。 第第 2 2 節(jié)節(jié)SpringSpring 的起源和背景的起源和背景 2002 年 wrox 出版了Expert one on one J2EE design and development 一 書。該書的作者是 Rod Johnson。在書中, Johnson 對傳統(tǒng)的 J2EE 架構提出深 層次的思考和質疑 。并提出 J2EE 的實用主義思想。 2003 年, J2EE 領域出現(xiàn) 一個新的框架 : Spring ,該框架同樣出自 Johnson 之手。事實上, Spring 框架 是Expert one on one J2EE design and development 一書中思想的全面體現(xiàn)和完 善, Spring 對實用主義 J2EE 思想進一步改造和擴充,使其發(fā)展成更開放、清晰、 全面及高效的開發(fā)框架。一經(jīng)推出,就得到眾多開發(fā)者的擁戴。傳統(tǒng)J2EE 應用 的開發(fā)效率低,應用服務器廠商對各種技術的支持并沒有真正統(tǒng)一,導致J2EE 的應用并沒有真正實現(xiàn) Write Once 及 Run Anywhere 的承諾。 Spring 作為開源 的中間件,獨立于各種應用服務器,甚至無須應用服務器的支持,也能提供應用服 務器的功能,如聲明式事務等。 Spring 致力于 J2EE 應用的各層的解決方案,而 不是僅僅專注于某一層的方案。可以說Spring 是企業(yè)應用開發(fā)的 “一站式“選擇, 并貫穿表現(xiàn)層、業(yè)務層及持久層。然而, Spring 并不想取代那些已有的框架,而 與它們無縫地整合。總結起來, Spring 有如下優(yōu)點: 1.低侵入式設計,代碼污染極低。 2.獨立于各種應用服務器,可以真正實現(xiàn)Write Once, Run Anywhere 的 承諾。 3.Spring 的 DI 機制降低了業(yè)務對象替換的復雜性。 4.Spring 并不完全依賴于 Spring ,開發(fā)者可自由選用 Spring 框架的部 分或全部。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 7 第第 3 3 節(jié)節(jié)HibernateHibernate 概述概述 Hibernate 是目前最流行的 ORM 框架,其采用非常優(yōu)雅的方式將SQL 操 作完全包裝成對象化的操作。其作者Gavin King 在持久層設計上極富經(jīng)驗,采 用非常少的代碼實現(xiàn)了整個框架,同時完全開放源代碼,即使偶爾遇到無法理解的 情況,也可以參照源代碼來理解其在持久層上靈巧而智能的設計。目前 Hibernate 在國內的開發(fā)人員相當多, Hibernate 的文檔也非常豐富,這些都為 學習 Hiberante 鋪平了道路,因而 Hibernate 的學習相對簡單一些。下面通過對 比來了解 Hibernate 和傳統(tǒng) JDBC 操作數(shù)據(jù)庫持久層之間的差異。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 8 第第 4 4 章章 需需求求分分析析 Blog 網(wǎng)站主要是實現(xiàn)注冊用戶登錄、管理相關信息、博文及相關評論、查看留言、 友情鏈接、及圖片的上傳和圖像的播放而為上網(wǎng)用戶提供按博文主題搜索,查看注冊 用戶的博文及提出相關評論,并為注冊用戶寫留言,游覽注冊用戶的相冊、注冊等功 能的系統(tǒng)。 下面就以兩種不同的用戶來分析博客網(wǎng)站的需求。 第第 1 1 節(jié)節(jié)注冊博友注冊博友 首先必須在博客首頁中登錄填寫用戶名和密碼,這樣才能執(zhí)行一些相關操作, 不然就是普通用戶只能查看一些信息,而不能發(fā)表博文??梢栽诠芾眄撁嫔咸砑硬?文的分類,可以上傳圖片和游覽自己的相冊,在上傳過程中可以將一張圖片定義為 自己的簽名,在個人管理頁面中注冊用戶還可以修改自己的個人信息。博文管理, 友情鏈接管理及博文分類管理,用例圖2。 圖 2 博客管理頁面的用例圖 在博客主界面中發(fā)表博文時可以選擇博文類型,這樣可以更好管理自己的博文。并 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 9 查看和刪除網(wǎng)友對自己的博文的一些評論、查看和刪除網(wǎng)友留下的一些留言,提供 與其他網(wǎng)友交流的空間。更好交流,在信息時代人們通過個人空間溝通也用來但不 能在自己的博客主頁面中提交評論和留言。這樣在本系統(tǒng)中就可以為博友提供更 多的個人色彩。在管理頁面中添加和刪除友情連接。這樣博友可以在自己空間中快 速定位自己的關心的網(wǎng)站。這樣還可以讓網(wǎng)友看到自己的一些信息。友情鏈接及 網(wǎng)頁訪問量統(tǒng)計顯示:在博客的個人頁面中還提供了推薦給普通網(wǎng)絡用戶的相關友 情鏈接,此外,對個人頁面的訪問量也在隨時進行統(tǒng)計,并在個人頁面中進行直觀 的顯示。 博客主頁面的用例圖如圖 3 所示: 圖 3 博客主頁面的用例圖 第第 2 2 節(jié)節(jié)普通用戶普通用戶 在博客注冊頁面注冊成為博客的注冊用戶,才可以擁有自己獨立的空間,進入 某一博客頁面查看相關文章信息時,可以隨時對自己所感興趣的文章發(fā)表評論,同時 也可以查看到其他人針對該博文的評論。 普通用戶在閱讀博文時可以在最后留下自 己的一些評論。他也可以留下更多的信息。這樣他可以寫留言。這樣他留下的信息就 更快地被博友所看到。 普通用戶進入博友的用例圖如圖4 所示: 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 10 圖 4 上網(wǎng)博友在博客主頁面的用例圖 普通網(wǎng)友可以搜索自己關心的一些數(shù)據(jù)。并且在搜索結果中提供在結果范圍內再次 搜索。這樣就可以將范圍縮小。 首頁向注冊用戶提供登陸模塊,注冊用戶在博客 網(wǎng)站首頁跟上網(wǎng)網(wǎng)友一樣可以查看博客和博文推薦。上網(wǎng)網(wǎng)友可以注冊成為博客用 戶,擁有自己獨立的空間。這一模塊的用例圖如圖5 所示: 圖 5 博客首頁的用例圖 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 11 第第 5 5 章章 系系統(tǒng)統(tǒng)架架構構設設計計 本系統(tǒng)采用嚴格的 J2 EE 應用結構,主要有如下幾個分層。 1.表現(xiàn)層:由 JSP 頁面組成。 2.MVC 層:使用 Struts 框架。 3.業(yè)務邏輯層 :主要由 Spring loC 容器管理的業(yè)務邏輯組件組成。 4.DAO 層:由 7 個 DAO 組件組成 ,實現(xiàn)類 必須繼承 Spring 提供的 HibernateDaoSupport。 5.Hibernate 持久層:由 7 個 PO 組成,并在 Hibernate Session 管理下,完 成數(shù)據(jù)庫訪問。 6.數(shù)據(jù)庫服務層 :使用 MySQL 數(shù)據(jù)庫存儲持久化數(shù)據(jù)。 系統(tǒng)的具體分層如圖 5 所示。 圖6 系統(tǒng)結構圖 在圖 6 黑色大方框內的 MVC 控制層、 Service 層及 DAO 組件層的組件,都由 Spring IOC 容器負責生成,并管理組件的實例(實例必須是單身模式的,本系統(tǒng) 中的 bean 基本上是單身的)。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 12 第第 1 1 節(jié)節(jié)系統(tǒng)架構說明:系統(tǒng)架構說明: 本系統(tǒng)不僅嚴格按 MVC 模式設計,還按 J2 EE 分層設計,將中間層嚴格分 成業(yè)務邏輯層、 DAO 層及數(shù)據(jù)持久層等。 MVC 層的控制器絕對禁止持久層訪問, 甚至不參與業(yè)務邏輯的實現(xiàn)。表現(xiàn)層采用傳統(tǒng)JSP 技術。 本系統(tǒng)采用的是典型的 J2EE 三層結構,分為表現(xiàn)層、中間層 (業(yè)務邏輯層 ) 和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處 理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與 數(shù)據(jù)庫交互。 Jsp 廣泛的應用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術打下了堅實的基 礎。中間層采用的是流行的Spring+Hibernate ,為了將控制層與業(yè)務邏輯層分離, 又細分為以下幾種。 Web 層,就是 MVC 模式里面的 C,負責邏輯層和表現(xiàn)層的交互。調用業(yè)務邏輯 層,并將業(yè)務數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC 采用 Struts 框架。 Service 層(就是業(yè)務邏輯層 ),負責實現(xiàn)業(yè)務邏輯。業(yè)務邏輯層以DAO 層為基 礎,通過對 DAO 組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務邏輯。 DAO 層,負責與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。 PO ,持久化對象。通過實體關系映射工具將關系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很 方便地實現(xiàn)以面向對象方式操作數(shù)據(jù)庫,該系統(tǒng)采用Hibernate 作為 ORM 框架。 Spring 的作用貫穿了整個中間層,將Web 層、Service 層、DAO 層及 PO 無 縫整合,其數(shù)據(jù)服務層用來存放數(shù)據(jù)。 第第 2 2 節(jié)節(jié)HibernateHibernate 層層 通過使用 Hibernate 持久層,可以避免使用傳統(tǒng)的JDBC 操作數(shù)據(jù)庫,對 JDBC 近一步包裝,從而更好地使用面向對象的方式來操作數(shù)據(jù)庫。保證了整個軟 件開發(fā)過程以面向對象的方式進行,即面向對象分析、設計及編程,透過 Hibernte 對 PO 對象持久化操作,不管插入還是查詢都是通過PO。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 13 5.2.1 設計持久化對象 (PO) 面向對象分析,是指根據(jù)系統(tǒng)需求提取應用中的對象,將這些對象抽象成類, 再抽取出需要持久化保存的類,這些需要持久化保存的類就是持久化對象(PO) 。該系統(tǒng)并沒有預先設計數(shù)據(jù)庫,而是完全從面向對象分析開始,設計了7 個 持久化類。本系統(tǒng)一共設計了如下7 個 PO 。 1.Blog: 對應博客網(wǎng)友的一些基本信息,必如id、username、password、sex、 picturename、name、address、uid、subject。還包括一些集合,博友的博文 (Articles)、圖片( Pictures)、留言( Messages),這樣在系統(tǒng)中我們可以隨時 通過 getXxx()訪問博客的一些屬性就不用編寫sql 語句來訪問博友的些屬性, 2.Picture: 對應博友的圖片,包含 name、blog,filename,這樣我們可以將圖片 的路徑名保存到數(shù)據(jù)庫中,在根據(jù)路徑名訪問博友上傳的圖片,就不用用到數(shù)據(jù)庫 中的 Blob 類型,將圖片數(shù)據(jù)格式轉來轉去,不過這樣服務器直接存儲客戶的圖片。 3.Messages: 對應網(wǎng)友留下的留言,屬性有id、username、Blog、注冊用戶可 以查看別人寫的留言,但不能在自己的空間內留言。 4. FeedBack: 對應回復, 包括 id、article、username、content。他對于一篇博 文,是網(wǎng)友閱讀博文后對博文的評論。該評論無論是誰都可以看到。 5. Sort: 對應博文分類屬性有 Id、Blog 、name、Articles,注冊用戶可以在自己 的空間定義一些分類,這樣可以更好管理自己的博文,一個分類對應一個 Blog,一個分類可能有很多分類。 6. Article: 博客系統(tǒng)的核心 對應有 title,Id、blog、content、sort,一個博文屬 于一種分類,可以有很多回復, 7. Links: 對應有情連接,包括 id、url、name、blog 博友通過添加有情連接可以 在自己的空間中提供快速的自己關心的網(wǎng)站。 客觀世界中的對象不是孤立存在的,以上7 個 PO 也不是孤立存在的,它們 之間存在復雜的關聯(lián)關系。分析關聯(lián)關系也是面向對象分析的必要步驟,這7 個 PO 的關系如下。 Blog 除了 FeedBack 外,與另外 5 個都是 1-N 的關系,在 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 14 blog 類里對應有個集合。比如 messages,是 SetArticle 和 FeedBack 之間存在 I- N 的關系,每篇博文可以被很多人評論。 Article 和 sort 之間存在 N-1 的關系, 即每篇博文只能屬于一種分類中,并且只屬于一個博友,在Hibernate 框架中它 提供了以 xml 文件形式出現(xiàn)的映射文件,完成 從 PO 到數(shù)據(jù)庫表映射后,即完成 面向對象的程序設計語言與關系數(shù)據(jù)庫的映射。以面向對象的方式操作關系數(shù)據(jù)庫。 5.2.2 實現(xiàn) DAO 層 在 Hibernate 持久層之上,可使用 DAO 組件再次封裝數(shù)據(jù)庫操作。通過 DAO 層,可以讓業(yè)務邏輯層與具體持久層技術分離,一旦需要更換持久層技術時, 業(yè)務邏輯層組件不需要任何改變。因此,使用DAO 組件,即意味著引入 DAO 模式,使每個 DAO 組件包含了數(shù)據(jù)庫的訪問邏輯 :每個 DAO 組件可對一個數(shù)據(jù) 庫表完成基本的 CRUD 等操作。 DAO 模式的實現(xiàn)至少需要如下三個部分。 1.DAO 工廠類。 2.DAO 接口。 3.DAO 接口的實現(xiàn)類。 DAO 模式是一種更符合軟件工程的開發(fā)方式,使用 DAO 模式有如下理由。 1)DAO 模式抽象出數(shù)據(jù)訪問方式,業(yè)務邏輯組件無須理會底層的數(shù)據(jù)庫 訪問,而只專注于業(yè)務邏輯的實現(xiàn)。 2)DAO 將數(shù)據(jù)訪問集中在獨立的一層,所有的數(shù)據(jù)訪問都由DAO 對象完 成,這層獨立的 DAO 分離了數(shù)據(jù)訪問的實現(xiàn)與其他業(yè)務邏輯,使得系統(tǒng) 更具可維護性。 3)DAO 還有助于提升系統(tǒng)的可移植性。獨立的DAO 層使得系統(tǒng)能在不同 的數(shù)據(jù)庫之間輕易切換,底層的數(shù)據(jù)庫實現(xiàn)對于業(yè)務邏輯組件是透明的。 數(shù)據(jù)庫移植時僅僅影響 DAO 層,不同數(shù)據(jù)庫的切換不會影響業(yè)務邏輯組 件,因此提高了系統(tǒng)的可復用性。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 15 對于不同的持久層技術, Spring 的 DAO 提供一個 DAO 模板,將通用的 操作放在模板里完成,而對于特定的操作,則通過回調接口完成。Spring 為 Hibernate 提供的 DAO 支持類是 : HibernateDaoSupport, 5.2.3 DAO 組件的定義 DAO 組件提供了各持久化對象的基本的CRUD 操作。而在 DAO 接口里則 對 DAO 組件包含的各種 CRUD 方法提供了聲明,但有一些IDE 工具也可以生 成基本的 CRUD 方法。使用 DAO 接口的原因是 :避免業(yè)務邏輯組件與特定的 DAO 組件藕合。由于 DAO 組件中的方法不是開始就設計出來的,其中的很多方 法可能會隨著業(yè)務邏輯的需求而增加,但以下幾個方法是通用 的。 get: 根據(jù)主鍵加載持久化實例。 saveor update: 保存或更新持久化實例。 remove: 刪除持久化實例。 上面涉及了 7 個 PO,這樣我們必須設計 7 個對應的 PODao 7 個 Dao 必須繼承 BaseDao 這個 BaseDao 有對接口的一些基本的 CURD 操作。 7 個 Dao 如下。LinksDao ,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao。這 7 個 Dao 分別封裝對自己的持久化對象的一些操作。 5.2.4 實現(xiàn) DAO 組件 借助于Spring的DAO支持,可以很方便地實現(xiàn) DAO類。Spring 為Hibernate 的整合提供了很好的支持, Spring 的DAO 支持類是 :HiberanteDaoSupport , 該類只需要傳入一個 SessionFactory 引用,即可得到一個 HibernateTemplate 實 例,該實例功能非常強大,數(shù)據(jù)庫的大部分操作也很容易實現(xiàn)。所有的DAO 類 都繼承HibernateDaoSupport,并實現(xiàn)相應的 DAO 接口。而業(yè)務邏輯對象則面向 接口編程,無須關心 DAO 的實現(xiàn)細節(jié)。通過這種方式,可以讓應用在不同的持久 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 16 化技術之間切換。 LinksDaoHiberante ,BlogDaoHiberante、FeedBackDaoHiberante、ArticleDaoHiberante、MessageDao Hiberante、SortDaoHiberante、PictureDaoHiberante分別是LinksDao ,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao的實 現(xiàn)類,并繼承 HibernateDaoSupport ,并通過 Spring IoC容器向7個Dao 實現(xiàn)類注 入SessionFactroy ,在7個Dao 的實現(xiàn)類就可以通過 HibernateTemplate對PO持久 化操作。并借助于 Spring 提供的兩個工具類 : HibernateDaoSupport和 HibernateTemplate,可以很容易地實現(xiàn) DAO 組件。這種簡單的實現(xiàn)較之傳統(tǒng)的 JDBC 持久化訪問,簡直不可同日而語。比如我現(xiàn)在要得到所有Blog對象我只需 一句 return getHibernateTemplate() .find(“from Blog“);則返回一個 Blog對象的列 表。 5.2.5 部署 DAO 層 HibernateDaoSupport 類只需要一個 SessionFactory 屬性,即可完成數(shù)據(jù)庫 訪問。SessionFactroy 創(chuàng)建 Session,而數(shù)據(jù)庫的 CRUD 操作都是有 Session 完成, 并將查詢結果保存在一級緩存中,每次用戶提交一次會話,可能需要Session 完 成一些數(shù)據(jù)庫的操作而實際的數(shù)據(jù)庫訪問由模板類HibernateTemplate 完成,該 模板類提供了大量便捷的方法,簡化了數(shù)據(jù)庫的訪問。 5.2.5.1 DAO 組件運行的基礎 應用的 DAO 組件以 Hibernate 和 Spring 為基礎,由 Spring 容器負責生成 并管理 DAO 組件。Spring 容器負責為 DAO 組件注入其運行所需要的基礎 SessionFactory。Spring 為整合 Hibernate 提供了大量工具類,通過 LocalSessionFactoryBean 類,可以將 Hibernate 的 SessionFactory 納入其 IoC 容器內。使用 LocalSessionFactoryBean 配置 SessionFactory 之前,必須為其提供 對應的數(shù)據(jù)源,配置代碼如下 : 在 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 17 datasource中配置它的數(shù)據(jù)庫驅動 driverClass,URL,username、password 、inPoolSize、maxPoolSize 不管我們采用那種數(shù)據(jù)庫我就可以在修改 dataSource 的一些屬性而不改動程序,將程序和數(shù)據(jù)庫的耦合降到最低。 5.2.5.2 配置 DAD 組件 在將dataSource注入到上面簡述的 7個Dao中,就可以用 HibernateTemplate提 供的大量便捷的方法。進一步簡化了持久層討問,其模板的操作大大降低 Hibernate 的重復操作 ;Spring 提供的DAO 支持簡化了 DAO 開發(fā); SessionFactory 的依賴注入簡化了 Session 的控制等 ;這些都極大地提高 J2EE應用 的開發(fā)效率。聲明式事務的管理分離了業(yè)務邏輯和事務邏輯,將應用從特定的事務 邏輯中解料,使應用可以方便地在不同的事務策略之間切換。在所有的ORM 框 架中, Sping 對Hibernate 的支持最好。 Spring 提供很多 IoC 特性的支持,方 便地處理大部分典型的 Hibernate 整合問題,如 SessionFactory 的注入到 7個 PODao中、HibernateTemplate 的簡化操作及 DAO 支持等,然后在 7個PODao實 現(xiàn)類繼承 HibernateDaoSupport,這樣的話, Dao實現(xiàn)類就可以通過 HibernateTemplment以面向對象的方式操作數(shù)據(jù)庫。另外, Spring 還提供了統(tǒng) 一的異常體系及聲明式事務管理等。一旦 Hibernate 處于Spring 的管理下, Hibernate 所需要的基礎資源,都由 Spring 提供注入。 Hibernate創(chuàng)建 SessionFactory 必需的DataSource ,執(zhí)行持久化必需的 Session 及持久層訪問必 需的事務控制等,這些原本必須通過代碼控制的邏輯,都將由Spring 接管: DataSource, SessionFactory, TransactionManager 等,都將作為 Spring 容器中的 beano 將這些bean 放在配置文件中管理,可以提供很好的解耦。Spring 提供了 DAO 支持,可以大大簡化 DAO 組件的開發(fā)。 IOC 容器的使用,提供了 DAO 組件與業(yè)務邏輯組件之間的松糯合。所有的DAO實現(xiàn)Bean 組件,都由容器負責 注入到業(yè)務邏輯組件中,其業(yè)務組件無須關心DAO 組件的實現(xiàn)。面向接口編程 及DAO 模式的使用,提高了系統(tǒng)組件之間的解稿,降低了系統(tǒng)重構的成本。通過 Spring 整合Hibernate ,使持久層的訪問更加容易,使用 Spring 管理Hibernate 持久層有如下優(yōu)勢。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 18 1.有效的 Session 管理: Spring 提供了有效、簡單和安全的Hibernate Session 處 理。 2.IoC 容器提高了 DAO 組件與業(yè)務邏輯層之間的解糯。 3.DAO 模式的使用,降低了系統(tǒng)重構的代價。 4.方便的事務管理 : Hibernate 的事務管理處理會限制 Hibernate 的表現(xiàn),而 5.Spring的聲明式事務管理力度是方法級。 6.通用的資源管理 : Spring 的ApplicationContext 能管理SessionFactory ,使得 配置值很容易被管理和修改,無須使用Hibernate 的配置文件。 7.異常包裝 :Spring 能夠包裝 Hibernate 異常,把它們從 checked exception 變 為 runtimeException; 開發(fā)者可選擇在恰當?shù)膶犹幚頂?shù)據(jù)中不可恢復的異常,從而避 免煩瑣的 catch/throw 及異常聲明。配置 DAD 組件所有繼承 HibernateDaoSupport 的 DAO 實現(xiàn)類,必須為其提供 SessionFactory 的引用。 由于所有 DAO 組件都需要注入 SessionFactory 引用,因此可以使用 bean 繼承 簡化 DAO 組件的配置。本應用同樣將所有的DAO 組件配置在單獨的配置文件 中 daoContext.xml 中例如:由于 7 個 Dao 都必須利用 IoC 容器注入 SessionFactory。我們先配一個 dao 模板,然后 7 個 Dao 就繼承該模板這樣就可以 簡化 daoContext.xml 文件 以 blogDAO 為例,blogDAO 的以 daoTemplate 為父 Bean ,屬性 class 是 Dao 的實現(xiàn)類。 其余 6 個 PODAO 的配置相似。從上面的配置文件可以看出Spring Ioc 容器在 Tomcat 啟動時就可以向 Dao 注入 SessionFactory 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話: 01087832641. 19 第第 3 3 節(jié)節(jié)實現(xiàn)實現(xiàn) ServiceService 層層 Service 組件采用正面模式封裝多個DAO 組件, DAO 對象與 Service 組 件之間的關 Service 組件需要實現(xiàn)的業(yè)務方法主要取決于業(yè)務的需要,通常需要在 業(yè)務組件中包含對應的方法。 業(yè)務層組件的實現(xiàn)業(yè)務層組件與具體的數(shù)據(jù)庫訪問技術分離,使所有的數(shù)據(jù)庫 訪問依賴于 DAO 組件,定義一個 FacadeManagerImpl 來包裝 7 個 Dao 這樣就可 以把邏輯層和 Dao 分開,達到松散耦合的效果。事務管理將推遲到Service 組 件而不是 DAO 組件,因為只有對業(yè)務邏輯方法添加事務才有實際的意義,對于單 個 DAO 方法(基本的 CRUD 方法)增加事務操作是沒有太大實際意義的。關于事 務屬性的配置,本系統(tǒng) 使用 Spring 提供的 TransactionProxyFactoryBean 配置事 務代理。 這樣不必為每個目標對象配置代理bean; 避免了目標對象被直接調用。 部暑業(yè)務層組件單獨配置系統(tǒng)的業(yè)務邏輯層,可避免因配置文件過大引起配置文件 難以閱讀。將配置文件按層和模塊分開配置,可以提高Spring 配置文件的可讀 性和可理解性。在 applicationContext. xml 配置文件中配置數(shù)據(jù)源、事務管理器、 業(yè)務邏輯組件和事務管理器等bean。配置文件如下: PROPAGATION_REQUIRED 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級、國家級、核心期刊、CSSCI 來源核心 期刊論文。 QQ:757518360 電話:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年能源行業(yè)CCS項目經(jīng)濟效益與減排潛力研究報告
- 2025屆河北省秦皇島海港區(qū)四校聯(lián)考英語八下期末檢測試題含答案
- 文化創(chuàng)意產(chǎn)品開發(fā)資金申請條件與2025年政策扶持報告
- 2025年醫(yī)院信息化建設電子病歷系統(tǒng)與醫(yī)院信息化管理的協(xié)同優(yōu)化報告
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的知識產(chǎn)權布局與戰(zhàn)略規(guī)劃報告
- 2025年醫(yī)藥企業(yè)CRO研發(fā)外包的合作模式與項目管理優(yōu)化策略研究報告
- 江蘇省無錫錫東片2025屆英語七年級第二學期期末考試試題含答案
- 年加工20萬噸鋼卷項目可行性研究報告寫作模板-拿地申報
- 爆破人員考試試題及答案
- 2025年消費金融市場用戶畫像研究:精準營銷策略與客戶體驗優(yōu)化
- 秸稈主題班會課件
- 《GPCR信號轉導》課件
- 2025年內蒙古自治區(qū)呼和浩特市中考二模語文試題(含答案)
- 醫(yī)院圍手術期管理制度
- 無人機課程培訓大綱
- 天津市西青區(qū)楊柳青第二中學2024-2025學年八年級下學期4月期中數(shù)學試題(含部分答案)
- 2025春統(tǒng)編版小學道德與法治五年級下冊(全冊)教案、教學反思、教學計劃(附教材目錄P141)
- 高血壓病人個體化健康教育方案
- 腦挫傷患者的護理
- 腰椎間盤突出癥手術的圍手術期護理
- 警衛(wèi)道路培訓課件
評論
0/150
提交評論