




已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核 心期刊論文。 QQ:757518360 電話: 01087832641. 湖湖南南對(duì)對(duì)外外經(jīng)經(jīng)濟(jì)濟(jì)貿(mào)貿(mào)易易職職業(yè)業(yè)學(xué)學(xué)院院 畢畢 業(yè)業(yè) 論論 文文 論論文文題題目目: 基基于于 j ja av va a 的的博博客客網(wǎng)網(wǎng)站站設(shè)設(shè)計(jì)計(jì) 英英文文題題目目: 作作者者姓姓名名: 所所在在系系部部: 服務(wù)外包學(xué)院 專專業(yè)業(yè)班班級(jí)級(jí): 大網(wǎng)絡(luò) 0701 班 指指導(dǎo)導(dǎo)教教師師: 完完成成日日期期: 2010 年 06 月 05 日 評(píng)評(píng)語(yǔ)語(yǔ) 等等級(jí)級(jí)指指導(dǎo)導(dǎo)教教師師簽簽名名: 二二一一年年六六月月五五日日 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核 心期刊論文。 QQ:757518360 電話: 01087832641. I 目目錄錄 目錄.I 摘要 III 前言 .V 文獻(xiàn)綜述 .I 第 1 章 緒論 .1 第 1 節(jié)背景 .1 第 2 節(jié)研究的目的與意義 .2 第 2 章 設(shè)計(jì)簡(jiǎn)介及設(shè)計(jì)方案 .3 第 1 節(jié)設(shè)計(jì)原則 3 第 2 節(jié)運(yùn)行架構(gòu) 3 第 3 節(jié)設(shè)計(jì)方案 4 第 3 章 相關(guān)技術(shù)介紹 5 第 1 節(jié)MVC 簡(jiǎn)介 5 第 2 節(jié)SPRING 的起源和背景 6 第 3 節(jié)HIBERNATE 概述 7 第 4 章 需求分析 8 第 1 節(jié)注冊(cè)博友 8 第 2 節(jié)普通用戶 9 第 5 章 系統(tǒng)架構(gòu)設(shè)計(jì) 11 第 1 節(jié)系統(tǒng)架構(gòu)說(shuō)明: .12 第 2 節(jié)HIBERNATE層 .12 第 3 節(jié)實(shí)現(xiàn) SERVICE 層 18 第 4 節(jié)MVC 層實(shí)現(xiàn)20 設(shè)計(jì)結(jié)果及對(duì)設(shè)計(jì)結(jié)果的分析.25 全文總結(jié) .28 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核 心期刊論文。 QQ:757518360 電話: 01087832641. II 致謝 30 參考文獻(xiàn) .31 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核 心期刊論文。 QQ:757518360 電話: 01087832641. III 摘要 越來(lái)越多的網(wǎng)絡(luò)用戶希望能夠在網(wǎng)絡(luò)平臺(tái)上更多地展現(xiàn)自己的個(gè)性,更方便 地與他人互動(dòng)交流 ,擁有一個(gè)自己獨(dú)立的空間 ,隨著 Web2.0 時(shí)代的到來(lái),一 個(gè)新的概念出現(xiàn)了 博客。 首先介紹了博客網(wǎng)站設(shè)計(jì)的意義和背景,主流 博客網(wǎng)站的主要功能 。重點(diǎn) 介紹了基于 J2EE 架構(gòu)的博客網(wǎng)站設(shè)計(jì)方案,實(shí)現(xiàn)的主要功能。 其次,重點(diǎn)講述了博客網(wǎng)站的業(yè)務(wù) 邏輯層和持久層的設(shè)計(jì)與開發(fā)過(guò)程中所 涉及的技術(shù) 及開源框架。系統(tǒng)如何以 Spring 框架為核心,向下整合 Hibernate 進(jìn)行持久層訪問(wèn) ,向上整合 Struts 按清晰的 MVC 模式控制, 怎樣劃分應(yīng)用 的層次。 簡(jiǎn)述了頁(yè)面的請(qǐng)求的分發(fā) 及流程。 最后對(duì) BLOG 網(wǎng)站開發(fā)中所碰到的一些問(wèn)題,并針對(duì)這些問(wèn)題提出一些解決方 案,最后對(duì)系統(tǒng)性能作出一些簡(jiǎn)要評(píng)估,闡述了一些個(gè)人想法。 關(guān)鍵詞: 博客,J2EE, Spring,Struts,Hibernate 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核 心期刊論文。 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ā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核 心期刊論文。 QQ:757518360 電話: 01087832641. V 前言 本文介紹了 基于輕量級(jí) J2EE 開發(fā)博客網(wǎng)站。同時(shí)利用 Spring、Struts、Hibernate、Ajax 等框架整合開發(fā) 。本文主要分為七章。 第一章主要介紹了進(jìn)行 博客網(wǎng)站 的背景及意義。 第二章對(duì) 博客網(wǎng)站設(shè)計(jì)方案 做了簡(jiǎn)要介紹。 第三章介紹了 博客網(wǎng)站的需求分析 。 第四章詳細(xì)介紹了 系統(tǒng)的架構(gòu)設(shè)計(jì),并詳細(xì)講述了通過(guò)Spring 框架,向 下整合 Hibernate 進(jìn)行持久層訪問(wèn) ,利用 DAO 模式隔離 業(yè)務(wù)邏輯層與具體持 久層,向上整合 Struts 按清晰的 MVC 模式構(gòu)建系統(tǒng) 。 第五章簡(jiǎn)單講述了系統(tǒng)設(shè)計(jì)時(shí)遇到的問(wèn)題及解決方案,另外對(duì)系統(tǒng)的性能 作了一個(gè)簡(jiǎn)要 的評(píng)論及設(shè)計(jì)結(jié)果和設(shè)計(jì)結(jié)果分析 。 第六章對(duì)全文所使用的方法、結(jié)果以及目的和意義做了全面的總結(jié),展望 java 技術(shù)在 Web 上的一些應(yīng)用。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 1 第第 1 1 章章 緒緒論論 第第 1 1 節(jié)節(jié)背景背景 商業(yè)網(wǎng)站設(shè)計(jì)的主要目的一般是通過(guò)網(wǎng)站的推廣,實(shí)現(xiàn)更多網(wǎng)絡(luò)用戶的關(guān)注, 從而吸引更多的企業(yè)用戶投入更多的宣傳經(jīng)費(fèi)到網(wǎng)站上。 長(zhǎng)期的戰(zhàn)略目標(biāo),商業(yè)網(wǎng)站不僅是公共產(chǎn)品信息和服務(wù)的推廣,它還是將買家 與賣家、廠商和合作伙伴緊密結(jié)合的平臺(tái),借助這些商業(yè)網(wǎng)站可以消除企業(yè)與客戶 之間時(shí)間與空間帶來(lái)的障礙。 Blog 博客網(wǎng)站致力于為廣大博客提供優(yōu)質(zhì)博客頁(yè)面服務(wù)的商業(yè)網(wǎng)站。每個(gè)博客 都希望借助自己的博客頁(yè)面宣傳自己,而博客數(shù)量越多,網(wǎng)站的點(diǎn)擊率越高就越能 夠吸引廣大的企業(yè)客戶選擇該商業(yè)網(wǎng)站作為媒介,將自己的產(chǎn)品展現(xiàn)給客戶??梢?說(shuō),對(duì)這些博客網(wǎng)站而言:為博客提供良好的服務(wù)就意味著為網(wǎng)站帶來(lái)更多的商業(yè) 客戶。因此,在具體設(shè)計(jì)實(shí)現(xiàn)該博客網(wǎng)站時(shí),主要考慮了主流博客網(wǎng)站的幾個(gè)主要 功能。 1.博客的注冊(cè)、登錄驗(yàn)證功能 2.網(wǎng)絡(luò)用戶通過(guò)關(guān)鍵字搜索博文功能 3.最熱門博客頁(yè)面推薦瀏覽 4.文章詳細(xì)內(nèi)容及相關(guān)評(píng)論顯示 5.博客頁(yè)面訪問(wèn)量統(tǒng)計(jì) 6.博客個(gè)人文章管理維護(hù)功能 7.博客個(gè)人文章分類管理維護(hù)功能 8.博客個(gè)人友情鏈接維護(hù)功能 9.博客個(gè)人基本信息管理維護(hù)功能 10. 博客圖片上傳 及個(gè)人相冊(cè)管理 11. 網(wǎng)絡(luò)用戶寫留言,博 主查看留言。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 2 第第 2 2 節(jié)節(jié)研究的目的與意義研究的目的與意義 Blog 記載了日常發(fā)生的事情和自己的興趣愛好,把自己的思想和知識(shí)和他人分 享、交流,同時(shí)又通過(guò) “六度空間 ”結(jié)識(shí)了更多志趣相投的朋友;而越來(lái)越多專業(yè)知 識(shí)的 Blog 的出現(xiàn),讓我們看到了 Blog 更多所蘊(yùn)涵的巨大的信息價(jià)值:不同的 Blog 選擇不同的內(nèi)容,收集和整理成為很多人關(guān)注的專業(yè) Blog 目前越來(lái)越 多的人獲取信息的來(lái)源是一些固定的 Blog 。隨著博客人數(shù)的增加, Blog 作為 一種新的生活方式、新的工作方式、新的學(xué)習(xí)方式已經(jīng)被越來(lái)越多的人所接受,并 且在改變傳統(tǒng)的網(wǎng)絡(luò)和社會(huì)結(jié)構(gòu):網(wǎng)絡(luò)信息不再是虛假不可驗(yàn)證的,交流和溝通更 有明確的選擇和方向性,單一的思想和群體的智慧結(jié)合變的更加有效,個(gè)人出版變 成人人都可以實(shí)現(xiàn)的夢(mèng)想 Blog 正在影響和改變著我們的生活 。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 3 第第 2 2 章章 設(shè)設(shè)計(jì)計(jì)簡(jiǎn)簡(jiǎn)介介及及設(shè)設(shè)計(jì)計(jì)方方案案 在整個(gè) blog 進(jìn)行開發(fā)之前,要確定出整個(gè)項(xiàng)目的整體架構(gòu),包括系統(tǒng)的選型、 運(yùn)行環(huán)境的確定 及系統(tǒng)結(jié)構(gòu) 設(shè)計(jì)。下面對(duì)這進(jìn)行詳細(xì)介紹。 第第 1 1 節(jié)節(jié)設(shè)計(jì)原則設(shè)計(jì)原則 在進(jìn)行軟件系統(tǒng)開發(fā)的最初環(huán)節(jié),一般都需要進(jìn)行系統(tǒng)的選型,即根據(jù)系統(tǒng)功 能的實(shí)際需求,選擇合適的開發(fā)工具及軟件架構(gòu)。 blog 對(duì)系統(tǒng)的可靠性、穩(wěn)定性有比較高的要求。本系統(tǒng)設(shè)計(jì)時(shí),比較主流的 B/S 設(shè)計(jì)有基于 JSP、ASP、PHP、CGI 及 J2EE 等模式。相比較而言 PHP 的功能 相對(duì)簡(jiǎn)單,不適合做大程序;而CGI 效率相對(duì)較低,所以也不考慮。由于J2EE 的開源的框架中提供了 MVC 模式實(shí)現(xiàn)框架 Struts、對(duì)象關(guān)系模型中的 Hibernate 的框架及擁有事務(wù)管理 和依賴注入的 Spring。利用現(xiàn)存框架可以更快開發(fā)系統(tǒng)。 所以選擇 Java 技術(shù)作為 blog 的開發(fā)工具。 第第 2 2 節(jié)節(jié)運(yùn)行架構(gòu)運(yùn)行架構(gòu) 為了增加系統(tǒng)的吞吐量,提高并發(fā)處理客戶請(qǐng)求數(shù)量,系統(tǒng)采用了IBM 服 務(wù)器作為主機(jī)。在數(shù)據(jù)庫(kù)處理方面,不需要在數(shù)據(jù)層借助存儲(chǔ)過(guò)程及數(shù)據(jù)庫(kù)服務(wù)器 端函數(shù)封裝過(guò)多的業(yè)務(wù)邏輯,因此數(shù)據(jù)庫(kù)系統(tǒng)采用相對(duì)精巧的MySQLError! Reference source not found.。 該在線博客系統(tǒng)服務(wù)器端如果需要布置到其他主機(jī)上,則該主機(jī)必備條件如下: 1.服務(wù)器端操作系統(tǒng):獨(dú)立于操作系統(tǒng)的跨平臺(tái)系統(tǒng),客戶端MicroSoft Windows 2000 及以上; 2.數(shù)據(jù)庫(kù): MySQL 5.0.27 版本; 3.Web 服務(wù)器: Tomcat 5.5 及以上版本,配合 MVC 設(shè)計(jì)模式及 Hibernate 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 4 開發(fā)架構(gòu); 4.客戶端運(yùn)行環(huán)境:能運(yùn)行 IE 5 以上或 Netscape 5 以上瀏覽器的操作系統(tǒng), 配合使用 Ajax 技術(shù); 5.客戶端運(yùn)行工具:目前的系統(tǒng)采用瀏覽器作為客戶端,為了支持Ajax 開發(fā)框架,應(yīng)該選擇使用 IE 5 以上版本瀏覽器。 本網(wǎng)站以 NT 為 Web 平臺(tái),JSP+Ajax+Servlet+JavaBean+Hibernate 為網(wǎng)站實(shí) 現(xiàn)技術(shù),建立基于 MySQL 數(shù)據(jù)庫(kù)系統(tǒng)的核心動(dòng)態(tài)網(wǎng)頁(yè),實(shí)現(xiàn)博客網(wǎng)站前臺(tái)及博客 個(gè)人維護(hù)管理等功能模塊。 第第 3 3 節(jié)節(jié)設(shè)計(jì)方案設(shè)計(jì)方案 為了在更短的時(shí)間內(nèi)實(shí)現(xiàn)博客網(wǎng)站,我們采用J2EE 架構(gòu)。集成開發(fā)環(huán)境我 采用對(duì)于插件即插即用的 Eclipse,JSP 運(yùn)行環(huán)境我們采用 Tomcat 應(yīng)用服務(wù)器, 數(shù)據(jù)庫(kù)管理系統(tǒng)我們采用的是MYSQL,博客網(wǎng)站主要實(shí)現(xiàn)注冊(cè)用戶可以在 服 務(wù)器上開辟自己的空間,也可以發(fā)布消息,上傳文件,回復(fù)消息,從服務(wù)器發(fā)送客 戶端的數(shù)據(jù)應(yīng)用 XML 來(lái)封裝. 本系統(tǒng)采用的是經(jīng)典的 J2EE 三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層) 和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問(wèn)及合法性校驗(yàn)等工作放在中間層處 理??蛻舳瞬恢苯优c數(shù)據(jù)庫(kù)交互,而是通過(guò)組件與中間層建立連接,再由中間層與 數(shù)據(jù)庫(kù)交互。 并利用 Spring、Hibernate、Spring 等輕量級(jí)框架實(shí)現(xiàn)三層結(jié)構(gòu)的設(shè) 計(jì)。即采用的是 貧血模式,業(yè)務(wù)邏輯對(duì)象正面封裝了全部的業(yè)務(wù)邏輯方法, Web 層僅與業(yè)務(wù)邏輯組件交互即可,無(wú)須訪問(wèn)底層的DAO 對(duì)象。Spring 的聲 明式事務(wù)管理將負(fù)責(zé)業(yè)務(wù)邏輯對(duì)象方法的事務(wù)性。在貧血模式下,其分層非常清晰。 Domain Object 并不具備領(lǐng)域?qū)ο蟮臉I(yè)務(wù)邏輯功能,僅僅是ORM 框架持久化所 需的 POJO ,僅是數(shù)據(jù)載體。貧血模型容易理解,開發(fā)便捷,但嚴(yán)重背離了面向 對(duì)象的設(shè)計(jì)思想,所有的 Domain Object 并不是完整的 Java 對(duì)象。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 5 第第 3 3 章章 相相關(guān)關(guān)技技術(shù)術(shù)介介紹紹 第第 1 1 節(jié)節(jié)MVCMVC 簡(jiǎn)介簡(jiǎn)介 MVC 是 Model 、View 、Controller 三個(gè)詞的縮寫,三個(gè)詞分別代表應(yīng)用的 三個(gè)組成部分 :模型、視圖與控制器。三個(gè)部分以最少的稿合,協(xié)同工作,從而提 高應(yīng)用的可擴(kuò)展性及可維護(hù)性。起初, MVC 模式是針對(duì)相同的數(shù)據(jù)需要不同顯 示的應(yīng)用而設(shè)計(jì)的,其整體的效果如圖1 所示: 圖 1 MVC 結(jié)構(gòu) 在經(jīng)典的 MVC 模式中,事件由控制器處理,控制器根據(jù)事件的類型改變模型 或視圖,反之亦然。具體地說(shuō),模型維護(hù)一個(gè)視圖列表,這些視圖為獲得模型變化 通知,通常采用觀察者模式登記給模型。當(dāng)模型發(fā)生改變時(shí),模型向所有登記過(guò)的 視圖發(fā)送通知 :接下來(lái),視圖從對(duì)應(yīng)的模型中獲得信息,然后更新自己。概括起來(lái), MVC 有如下特點(diǎn)。 .多個(gè)視圖可以對(duì)應(yīng)一個(gè)模型。按MVC 設(shè)計(jì)模式,一個(gè)模 型對(duì)應(yīng)多個(gè)視圖,可以減少代碼的復(fù)制及代碼的維護(hù)量,一旦模型發(fā)生改變,也易 于維護(hù)。 1.模型返回的數(shù)據(jù)與顯示邏輯分離。模型數(shù)據(jù)可以應(yīng)用任何的顯示技術(shù),例 如使用 JSP 頁(yè)面、Velocity 模板或者直接產(chǎn)生 Excel 文檔等。 2.應(yīng)用被分隔為三層,降低了各層之間的稿合,提供了應(yīng)用的可擴(kuò)展性。 3.控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起, 完成不同的請(qǐng)求。因此,控制層可以說(shuō)是包含了用戶請(qǐng)求權(quán)限的概念。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 6 4.MVC 更符合軟件工程化管理的精神。不同的層各司其職,每一層的組件 具有相同的特征,有利于通過(guò)工程化和工具化產(chǎn)生管理程序代碼。 第第 2 2 節(jié)節(jié)SpringSpring 的起源和背景的起源和背景 2002 年 wrox 出版了Expert one on one J2EE design and development 一 書。該書的作者是 Rod Johnson。在書中, Johnson 對(duì)傳統(tǒng)的 J2EE 架構(gòu)提出深 層次的思考和質(zhì)疑 。并提出 J2EE 的實(shí)用主義思想。 2003 年, J2EE 領(lǐng)域出現(xiàn) 一個(gè)新的框架 : Spring ,該框架同樣出自 Johnson 之手。事實(shí)上, Spring 框架 是Expert one on one J2EE design and development 一書中思想的全面體現(xiàn)和完 善, Spring 對(duì)實(shí)用主義 J2EE 思想進(jìn)一步改造和擴(kuò)充,使其發(fā)展成更開放、清晰、 全面及高效的開發(fā)框架。一經(jīng)推出,就得到眾多開發(fā)者的擁戴。傳統(tǒng)J2EE 應(yīng)用 的開發(fā)效率低,應(yīng)用服務(wù)器廠商對(duì)各種技術(shù)的支持并沒有真正統(tǒng)一,導(dǎo)致J2EE 的應(yīng)用并沒有真正實(shí)現(xiàn) Write Once 及 Run Anywhere 的承諾。 Spring 作為開源 的中間件,獨(dú)立于各種應(yīng)用服務(wù)器,甚至無(wú)須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服 務(wù)器的功能,如聲明式事務(wù)等。 Spring 致力于 J2EE 應(yīng)用的各層的解決方案,而 不是僅僅專注于某一層的方案??梢哉f(shuō)Spring 是企業(yè)應(yīng)用開發(fā)的 “一站式“選擇, 并貫穿表現(xiàn)層、業(yè)務(wù)層及持久層。然而, Spring 并不想取代那些已有的框架,而 與它們無(wú)縫地整合。總結(jié)起來(lái), Spring 有如下優(yōu)點(diǎn): 1.低侵入式設(shè)計(jì),代碼污染極低。 2.獨(dú)立于各種應(yīng)用服務(wù)器,可以真正實(shí)現(xiàn)Write Once, Run Anywhere 的 承諾。 3.Spring 的 DI 機(jī)制降低了業(yè)務(wù)對(duì)象替換的復(fù)雜性。 4.Spring 并不完全依賴于 Spring ,開發(fā)者可自由選用 Spring 框架的部 分或全部。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 7 第第 3 3 節(jié)節(jié)HibernateHibernate 概述概述 Hibernate 是目前最流行的 ORM 框架,其采用非常優(yōu)雅的方式將SQL 操 作完全包裝成對(duì)象化的操作。其作者Gavin King 在持久層設(shè)計(jì)上極富經(jīng)驗(yàn),采 用非常少的代碼實(shí)現(xiàn)了整個(gè)框架,同時(shí)完全開放源代碼,即使偶爾遇到無(wú)法理解的 情況,也可以參照源代碼來(lái)理解其在持久層上靈巧而智能的設(shè)計(jì)。目前 Hibernate 在國(guó)內(nèi)的開發(fā)人員相當(dāng)多, Hibernate 的文檔也非常豐富,這些都為 學(xué)習(xí) Hiberante 鋪平了道路,因而 Hibernate 的學(xué)習(xí)相對(duì)簡(jiǎn)單一些。下面通過(guò)對(duì) 比來(lái)了解 Hibernate 和傳統(tǒng) JDBC 操作數(shù)據(jù)庫(kù)持久層之間的差異。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 8 第第 4 4 章章 需需求求分分析析 Blog 網(wǎng)站主要是實(shí)現(xiàn)注冊(cè)用戶登錄、管理相關(guān)信息、博文及相關(guān)評(píng)論、查看留言、 友情鏈接、及圖片的上傳和圖像的播放而為上網(wǎng)用戶提供按博文主題搜索,查看注冊(cè) 用戶的博文及提出相關(guān)評(píng)論,并為注冊(cè)用戶寫留言,游覽注冊(cè)用戶的相冊(cè)、注冊(cè)等功 能的系統(tǒng)。 下面就以兩種不同的用戶來(lái)分析博客網(wǎng)站的需求。 第第 1 1 節(jié)節(jié)注冊(cè)博友注冊(cè)博友 首先必須在博客首頁(yè)中登錄填寫用戶名和密碼,這樣才能執(zhí)行一些相關(guān)操作, 不然就是普通用戶只能查看一些信息,而不能發(fā)表博文??梢栽诠芾眄?yè)面上添加博 文的分類,可以上傳圖片和游覽自己的相冊(cè),在上傳過(guò)程中可以將一張圖片定義為 自己的簽名,在個(gè)人管理頁(yè)面中注冊(cè)用戶還可以修改自己的個(gè)人信息。博文管理, 友情鏈接管理及博文分類管理,用例圖2。 圖 2 博客管理頁(yè)面的用例圖 在博客主界面中發(fā)表博文時(shí)可以選擇博文類型,這樣可以更好管理自己的博文。并 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 9 查看和刪除網(wǎng)友對(duì)自己的博文的一些評(píng)論、查看和刪除網(wǎng)友留下的一些留言,提供 與其他網(wǎng)友交流的空間。更好交流,在信息時(shí)代人們通過(guò)個(gè)人空間溝通也用來(lái)但不 能在自己的博客主頁(yè)面中提交評(píng)論和留言。這樣在本系統(tǒng)中就可以為博友提供更 多的個(gè)人色彩。在管理頁(yè)面中添加和刪除友情連接。這樣博友可以在自己空間中快 速定位自己的關(guān)心的網(wǎng)站。這樣還可以讓網(wǎng)友看到自己的一些信息。友情鏈接及 網(wǎng)頁(yè)訪問(wèn)量統(tǒng)計(jì)顯示:在博客的個(gè)人頁(yè)面中還提供了推薦給普通網(wǎng)絡(luò)用戶的相關(guān)友 情鏈接,此外,對(duì)個(gè)人頁(yè)面的訪問(wèn)量也在隨時(shí)進(jìn)行統(tǒng)計(jì),并在個(gè)人頁(yè)面中進(jìn)行直觀 的顯示。 博客主頁(yè)面的用例圖如圖 3 所示: 圖 3 博客主頁(yè)面的用例圖 第第 2 2 節(jié)節(jié)普通用戶普通用戶 在博客注冊(cè)頁(yè)面注冊(cè)成為博客的注冊(cè)用戶,才可以擁有自己獨(dú)立的空間,進(jìn)入 某一博客頁(yè)面查看相關(guān)文章信息時(shí),可以隨時(shí)對(duì)自己所感興趣的文章發(fā)表評(píng)論,同時(shí) 也可以查看到其他人針對(duì)該博文的評(píng)論。 普通用戶在閱讀博文時(shí)可以在最后留下自 己的一些評(píng)論。他也可以留下更多的信息。這樣他可以寫留言。這樣他留下的信息就 更快地被博友所看到。 普通用戶進(jìn)入博友的用例圖如圖4 所示: 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 10 圖 4 上網(wǎng)博友在博客主頁(yè)面的用例圖 普通網(wǎng)友可以搜索自己關(guān)心的一些數(shù)據(jù)。并且在搜索結(jié)果中提供在結(jié)果范圍內(nèi)再次 搜索。這樣就可以將范圍縮小。 首頁(yè)向注冊(cè)用戶提供登陸模塊,注冊(cè)用戶在博客 網(wǎng)站首頁(yè)跟上網(wǎng)網(wǎng)友一樣可以查看博客和博文推薦。上網(wǎng)網(wǎng)友可以注冊(cè)成為博客用 戶,擁有自己獨(dú)立的空間。這一模塊的用例圖如圖5 所示: 圖 5 博客首頁(yè)的用例圖 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 11 第第 5 5 章章 系系統(tǒng)統(tǒng)架架構(gòu)構(gòu)設(shè)設(shè)計(jì)計(jì) 本系統(tǒng)采用嚴(yán)格的 J2 EE 應(yīng)用結(jié)構(gòu),主要有如下幾個(gè)分層。 1.表現(xiàn)層:由 JSP 頁(yè)面組成。 2.MVC 層:使用 Struts 框架。 3.業(yè)務(wù)邏輯層 :主要由 Spring loC 容器管理的業(yè)務(wù)邏輯組件組成。 4.DAO 層:由 7 個(gè) DAO 組件組成 ,實(shí)現(xiàn)類 必須繼承 Spring 提供的 HibernateDaoSupport。 5.Hibernate 持久層:由 7 個(gè) PO 組成,并在 Hibernate Session 管理下,完 成數(shù)據(jù)庫(kù)訪問(wèn)。 6.數(shù)據(jù)庫(kù)服務(wù)層 :使用 MySQL 數(shù)據(jù)庫(kù)存儲(chǔ)持久化數(shù)據(jù)。 系統(tǒng)的具體分層如圖 5 所示。 圖6 系統(tǒng)結(jié)構(gòu)圖 在圖 6 黑色大方框內(nèi)的 MVC 控制層、 Service 層及 DAO 組件層的組件,都由 Spring IOC 容器負(fù)責(zé)生成,并管理組件的實(shí)例(實(shí)例必須是單身模式的,本系統(tǒng) 中的 bean 基本上是單身的)。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 12 第第 1 1 節(jié)節(jié)系統(tǒng)架構(gòu)說(shuō)明:系統(tǒng)架構(gòu)說(shuō)明: 本系統(tǒng)不僅嚴(yán)格按 MVC 模式設(shè)計(jì),還按 J2 EE 分層設(shè)計(jì),將中間層嚴(yán)格分 成業(yè)務(wù)邏輯層、 DAO 層及數(shù)據(jù)持久層等。 MVC 層的控制器絕對(duì)禁止持久層訪問(wèn), 甚至不參與業(yè)務(wù)邏輯的實(shí)現(xiàn)。表現(xiàn)層采用傳統(tǒng)JSP 技術(shù)。 本系統(tǒng)采用的是典型的 J2EE 三層結(jié)構(gòu),分為表現(xiàn)層、中間層 (業(yè)務(wù)邏輯層 ) 和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問(wèn)及合法性校驗(yàn)等工作放在中間層處 理??蛻舳瞬恢苯优c數(shù)據(jù)庫(kù)交互,而是通過(guò)組件與中間層建立連接,再由中間層與 數(shù)據(jù)庫(kù)交互。 Jsp 廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的基 礎(chǔ)。中間層采用的是流行的Spring+Hibernate ,為了將控制層與業(yè)務(wù)邏輯層分離, 又細(xì)分為以下幾種。 Web 層,就是 MVC 模式里面的 C,負(fù)責(zé)邏輯層和表現(xiàn)層的交互。調(diào)用業(yè)務(wù)邏輯 層,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的MVC 采用 Struts 框架。 Service 層(就是業(yè)務(wù)邏輯層 ),負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯。業(yè)務(wù)邏輯層以DAO 層為基 礎(chǔ),通過(guò)對(duì) DAO 組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。 DAO 層,負(fù)責(zé)與持久化對(duì)象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。 PO ,持久化對(duì)象。通過(guò)實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)映射成對(duì)象,很 方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫(kù),該系統(tǒng)采用Hibernate 作為 ORM 框架。 Spring 的作用貫穿了整個(gè)中間層,將Web 層、Service 層、DAO 層及 PO 無(wú) 縫整合,其數(shù)據(jù)服務(wù)層用來(lái)存放數(shù)據(jù)。 第第 2 2 節(jié)節(jié)HibernateHibernate 層層 通過(guò)使用 Hibernate 持久層,可以避免使用傳統(tǒng)的JDBC 操作數(shù)據(jù)庫(kù),對(duì) JDBC 近一步包裝,從而更好地使用面向?qū)ο蟮姆绞絹?lái)操作數(shù)據(jù)庫(kù)。保證了整個(gè)軟 件開發(fā)過(guò)程以面向?qū)ο蟮姆绞竭M(jìn)行,即面向?qū)ο蠓治?、設(shè)計(jì)及編程,透過(guò) Hibernte 對(duì) PO 對(duì)象持久化操作,不管插入還是查詢都是通過(guò)PO。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 13 5.2.1 設(shè)計(jì)持久化對(duì)象 (PO) 面向?qū)ο蠓治?,是指根?jù)系統(tǒng)需求提取應(yīng)用中的對(duì)象,將這些對(duì)象抽象成類, 再抽取出需要持久化保存的類,這些需要持久化保存的類就是持久化對(duì)象(PO) 。該系統(tǒng)并沒有預(yù)先設(shè)計(jì)數(shù)據(jù)庫(kù),而是完全從面向?qū)ο蠓治鲩_始,設(shè)計(jì)了7 個(gè) 持久化類。本系統(tǒng)一共設(shè)計(jì)了如下7 個(gè) PO 。 1.Blog: 對(duì)應(yīng)博客網(wǎng)友的一些基本信息,必如id、username、password、sex、 picturename、name、address、uid、subject。還包括一些集合,博友的博文 (Articles)、圖片( Pictures)、留言( Messages),這樣在系統(tǒng)中我們可以隨時(shí) 通過(guò) getXxx()訪問(wèn)博客的一些屬性就不用編寫sql 語(yǔ)句來(lái)訪問(wèn)博友的些屬性, 2.Picture: 對(duì)應(yīng)博友的圖片,包含 name、blog,filename,這樣我們可以將圖片 的路徑名保存到數(shù)據(jù)庫(kù)中,在根據(jù)路徑名訪問(wèn)博友上傳的圖片,就不用用到數(shù)據(jù)庫(kù) 中的 Blob 類型,將圖片數(shù)據(jù)格式轉(zhuǎn)來(lái)轉(zhuǎn)去,不過(guò)這樣服務(wù)器直接存儲(chǔ)客戶的圖片。 3.Messages: 對(duì)應(yīng)網(wǎng)友留下的留言,屬性有id、username、Blog、注冊(cè)用戶可 以查看別人寫的留言,但不能在自己的空間內(nèi)留言。 4. FeedBack: 對(duì)應(yīng)回復(fù), 包括 id、article、username、content。他對(duì)于一篇博 文,是網(wǎng)友閱讀博文后對(duì)博文的評(píng)論。該評(píng)論無(wú)論是誰(shuí)都可以看到。 5. Sort: 對(duì)應(yīng)博文分類屬性有 Id、Blog 、name、Articles,注冊(cè)用戶可以在自己 的空間定義一些分類,這樣可以更好管理自己的博文,一個(gè)分類對(duì)應(yīng)一個(gè) Blog,一個(gè)分類可能有很多分類。 6. Article: 博客系統(tǒng)的核心 對(duì)應(yīng)有 title,Id、blog、content、sort,一個(gè)博文屬 于一種分類,可以有很多回復(fù), 7. Links: 對(duì)應(yīng)有情連接,包括 id、url、name、blog 博友通過(guò)添加有情連接可以 在自己的空間中提供快速的自己關(guān)心的網(wǎng)站。 客觀世界中的對(duì)象不是孤立存在的,以上7 個(gè) PO 也不是孤立存在的,它們 之間存在復(fù)雜的關(guān)聯(lián)關(guān)系。分析關(guān)聯(lián)關(guān)系也是面向?qū)ο蠓治龅谋匾襟E,這7 個(gè) PO 的關(guān)系如下。 Blog 除了 FeedBack 外,與另外 5 個(gè)都是 1-N 的關(guān)系,在 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 14 blog 類里對(duì)應(yīng)有個(gè)集合。比如 messages,是 SetArticle 和 FeedBack 之間存在 I- N 的關(guān)系,每篇博文可以被很多人評(píng)論。 Article 和 sort 之間存在 N-1 的關(guān)系, 即每篇博文只能屬于一種分類中,并且只屬于一個(gè)博友,在Hibernate 框架中它 提供了以 xml 文件形式出現(xiàn)的映射文件,完成 從 PO 到數(shù)據(jù)庫(kù)表映射后,即完成 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言與關(guān)系數(shù)據(jù)庫(kù)的映射。以面向?qū)ο蟮姆绞讲僮麝P(guān)系數(shù)據(jù)庫(kù)。 5.2.2 實(shí)現(xiàn) DAO 層 在 Hibernate 持久層之上,可使用 DAO 組件再次封裝數(shù)據(jù)庫(kù)操作。通過(guò) DAO 層,可以讓業(yè)務(wù)邏輯層與具體持久層技術(shù)分離,一旦需要更換持久層技術(shù)時(shí), 業(yè)務(wù)邏輯層組件不需要任何改變。因此,使用DAO 組件,即意味著引入 DAO 模式,使每個(gè) DAO 組件包含了數(shù)據(jù)庫(kù)的訪問(wèn)邏輯 :每個(gè) DAO 組件可對(duì)一個(gè)數(shù)據(jù) 庫(kù)表完成基本的 CRUD 等操作。 DAO 模式的實(shí)現(xiàn)至少需要如下三個(gè)部分。 1.DAO 工廠類。 2.DAO 接口。 3.DAO 接口的實(shí)現(xiàn)類。 DAO 模式是一種更符合軟件工程的開發(fā)方式,使用 DAO 模式有如下理由。 1)DAO 模式抽象出數(shù)據(jù)訪問(wèn)方式,業(yè)務(wù)邏輯組件無(wú)須理會(huì)底層的數(shù)據(jù)庫(kù) 訪問(wèn),而只專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。 2)DAO 將數(shù)據(jù)訪問(wèn)集中在獨(dú)立的一層,所有的數(shù)據(jù)訪問(wèn)都由DAO 對(duì)象完 成,這層獨(dú)立的 DAO 分離了數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)與其他業(yè)務(wù)邏輯,使得系統(tǒng) 更具可維護(hù)性。 3)DAO 還有助于提升系統(tǒng)的可移植性。獨(dú)立的DAO 層使得系統(tǒng)能在不同 的數(shù)據(jù)庫(kù)之間輕易切換,底層的數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)于業(yè)務(wù)邏輯組件是透明的。 數(shù)據(jù)庫(kù)移植時(shí)僅僅影響 DAO 層,不同數(shù)據(jù)庫(kù)的切換不會(huì)影響業(yè)務(wù)邏輯組 件,因此提高了系統(tǒng)的可復(fù)用性。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 15 對(duì)于不同的持久層技術(shù), Spring 的 DAO 提供一個(gè) DAO 模板,將通用的 操作放在模板里完成,而對(duì)于特定的操作,則通過(guò)回調(diào)接口完成。Spring 為 Hibernate 提供的 DAO 支持類是 : HibernateDaoSupport, 5.2.3 DAO 組件的定義 DAO 組件提供了各持久化對(duì)象的基本的CRUD 操作。而在 DAO 接口里則 對(duì) DAO 組件包含的各種 CRUD 方法提供了聲明,但有一些IDE 工具也可以生 成基本的 CRUD 方法。使用 DAO 接口的原因是 :避免業(yè)務(wù)邏輯組件與特定的 DAO 組件藕合。由于 DAO 組件中的方法不是開始就設(shè)計(jì)出來(lái)的,其中的很多方 法可能會(huì)隨著業(yè)務(wù)邏輯的需求而增加,但以下幾個(gè)方法是通用 的。 get: 根據(jù)主鍵加載持久化實(shí)例。 saveor update: 保存或更新持久化實(shí)例。 remove: 刪除持久化實(shí)例。 上面涉及了 7 個(gè) PO,這樣我們必須設(shè)計(jì) 7 個(gè)對(duì)應(yīng)的 PODao 7 個(gè) Dao 必須繼承 BaseDao 這個(gè) BaseDao 有對(duì)接口的一些基本的 CURD 操作。 7 個(gè) Dao 如下。LinksDao ,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao。這 7 個(gè) Dao 分別封裝對(duì)自己的持久化對(duì)象的一些操作。 5.2.4 實(shí)現(xiàn) DAO 組件 借助于Spring的DAO支持,可以很方便地實(shí)現(xiàn) DAO類。Spring 為Hibernate 的整合提供了很好的支持, Spring 的DAO 支持類是 :HiberanteDaoSupport , 該類只需要傳入一個(gè) SessionFactory 引用,即可得到一個(gè) HibernateTemplate 實(shí) 例,該實(shí)例功能非常強(qiáng)大,數(shù)據(jù)庫(kù)的大部分操作也很容易實(shí)現(xiàn)。所有的DAO 類 都繼承HibernateDaoSupport,并實(shí)現(xiàn)相應(yīng)的 DAO 接口。而業(yè)務(wù)邏輯對(duì)象則面向 接口編程,無(wú)須關(guān)心 DAO 的實(shí)現(xiàn)細(xì)節(jié)。通過(guò)這種方式,可以讓應(yīng)用在不同的持久 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 16 化技術(shù)之間切換。 LinksDaoHiberante ,BlogDaoHiberante、FeedBackDaoHiberante、ArticleDaoHiberante、MessageDao Hiberante、SortDaoHiberante、PictureDaoHiberante分別是LinksDao ,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao的實(shí) 現(xiàn)類,并繼承 HibernateDaoSupport ,并通過(guò) Spring IoC容器向7個(gè)Dao 實(shí)現(xiàn)類注 入SessionFactroy ,在7個(gè)Dao 的實(shí)現(xiàn)類就可以通過(guò) HibernateTemplate對(duì)PO持久 化操作。并借助于 Spring 提供的兩個(gè)工具類 : HibernateDaoSupport和 HibernateTemplate,可以很容易地實(shí)現(xiàn) DAO 組件。這種簡(jiǎn)單的實(shí)現(xiàn)較之傳統(tǒng)的 JDBC 持久化訪問(wèn),簡(jiǎn)直不可同日而語(yǔ)。比如我現(xiàn)在要得到所有Blog對(duì)象我只需 一句 return getHibernateTemplate() .find(“from Blog“);則返回一個(gè) Blog對(duì)象的列 表。 5.2.5 部署 DAO 層 HibernateDaoSupport 類只需要一個(gè) SessionFactory 屬性,即可完成數(shù)據(jù)庫(kù) 訪問(wèn)。SessionFactroy 創(chuàng)建 Session,而數(shù)據(jù)庫(kù)的 CRUD 操作都是有 Session 完成, 并將查詢結(jié)果保存在一級(jí)緩存中,每次用戶提交一次會(huì)話,可能需要Session 完 成一些數(shù)據(jù)庫(kù)的操作而實(shí)際的數(shù)據(jù)庫(kù)訪問(wèn)由模板類HibernateTemplate 完成,該 模板類提供了大量便捷的方法,簡(jiǎn)化了數(shù)據(jù)庫(kù)的訪問(wèn)。 5.2.5.1 DAO 組件運(yùn)行的基礎(chǔ) 應(yīng)用的 DAO 組件以 Hibernate 和 Spring 為基礎(chǔ),由 Spring 容器負(fù)責(zé)生成 并管理 DAO 組件。Spring 容器負(fù)責(zé)為 DAO 組件注入其運(yùn)行所需要的基礎(chǔ) SessionFactory。Spring 為整合 Hibernate 提供了大量工具類,通過(guò) LocalSessionFactoryBean 類,可以將 Hibernate 的 SessionFactory 納入其 IoC 容器內(nèi)。使用 LocalSessionFactoryBean 配置 SessionFactory 之前,必須為其提供 對(duì)應(yīng)的數(shù)據(jù)源,配置代碼如下 : 在 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 17 datasource中配置它的數(shù)據(jù)庫(kù)驅(qū)動(dòng) driverClass,URL,username、password 、inPoolSize、maxPoolSize 不管我們采用那種數(shù)據(jù)庫(kù)我就可以在修改 dataSource 的一些屬性而不改動(dòng)程序,將程序和數(shù)據(jù)庫(kù)的耦合降到最低。 5.2.5.2 配置 DAD 組件 在將dataSource注入到上面簡(jiǎn)述的 7個(gè)Dao中,就可以用 HibernateTemplate提 供的大量便捷的方法。進(jìn)一步簡(jiǎn)化了持久層討問(wèn),其模板的操作大大降低 Hibernate 的重復(fù)操作 ;Spring 提供的DAO 支持簡(jiǎn)化了 DAO 開發(fā); SessionFactory 的依賴注入簡(jiǎn)化了 Session 的控制等 ;這些都極大地提高 J2EE應(yīng)用 的開發(fā)效率。聲明式事務(wù)的管理分離了業(yè)務(wù)邏輯和事務(wù)邏輯,將應(yīng)用從特定的事務(wù) 邏輯中解料,使應(yīng)用可以方便地在不同的事務(wù)策略之間切換。在所有的ORM 框 架中, Sping 對(duì)Hibernate 的支持最好。 Spring 提供很多 IoC 特性的支持,方 便地處理大部分典型的 Hibernate 整合問(wèn)題,如 SessionFactory 的注入到 7個(gè) PODao中、HibernateTemplate 的簡(jiǎn)化操作及 DAO 支持等,然后在 7個(gè)PODao實(shí) 現(xiàn)類繼承 HibernateDaoSupport,這樣的話, Dao實(shí)現(xiàn)類就可以通過(guò) HibernateTemplment以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù)。另外, Spring 還提供了統(tǒng) 一的異常體系及聲明式事務(wù)管理等。一旦 Hibernate 處于Spring 的管理下, Hibernate 所需要的基礎(chǔ)資源,都由 Spring 提供注入。 Hibernate創(chuàng)建 SessionFactory 必需的DataSource ,執(zhí)行持久化必需的 Session 及持久層訪問(wèn)必 需的事務(wù)控制等,這些原本必須通過(guò)代碼控制的邏輯,都將由Spring 接管: DataSource, SessionFactory, TransactionManager 等,都將作為 Spring 容器中的 beano 將這些bean 放在配置文件中管理,可以提供很好的解耦。Spring 提供了 DAO 支持,可以大大簡(jiǎn)化 DAO 組件的開發(fā)。 IOC 容器的使用,提供了 DAO 組件與業(yè)務(wù)邏輯組件之間的松糯合。所有的DAO實(shí)現(xiàn)Bean 組件,都由容器負(fù)責(zé) 注入到業(yè)務(wù)邏輯組件中,其業(yè)務(wù)組件無(wú)須關(guān)心DAO 組件的實(shí)現(xiàn)。面向接口編程 及DAO 模式的使用,提高了系統(tǒng)組件之間的解稿,降低了系統(tǒng)重構(gòu)的成本。通過(guò) Spring 整合Hibernate ,使持久層的訪問(wèn)更加容易,使用 Spring 管理Hibernate 持久層有如下優(yōu)勢(shì)。 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 18 1.有效的 Session 管理: Spring 提供了有效、簡(jiǎn)單和安全的Hibernate Session 處 理。 2.IoC 容器提高了 DAO 組件與業(yè)務(wù)邏輯層之間的解糯。 3.DAO 模式的使用,降低了系統(tǒng)重構(gòu)的代價(jià)。 4.方便的事務(wù)管理 : Hibernate 的事務(wù)管理處理會(huì)限制 Hibernate 的表現(xiàn),而 5.Spring的聲明式事務(wù)管理力度是方法級(jí)。 6.通用的資源管理 : Spring 的ApplicationContext 能管理SessionFactory ,使得 配置值很容易被管理和修改,無(wú)須使用Hibernate 的配置文件。 7.異常包裝 :Spring 能夠包裝 Hibernate 異常,把它們從 checked exception 變 為 runtimeException; 開發(fā)者可選擇在恰當(dāng)?shù)膶犹幚頂?shù)據(jù)中不可恢復(fù)的異常,從而避 免煩瑣的 catch/throw 及異常聲明。配置 DAD 組件所有繼承 HibernateDaoSupport 的 DAO 實(shí)現(xiàn)類,必須為其提供 SessionFactory 的引用。 由于所有 DAO 組件都需要注入 SessionFactory 引用,因此可以使用 bean 繼承 簡(jiǎn)化 DAO 組件的配置。本應(yīng)用同樣將所有的DAO 組件配置在單獨(dú)的配置文件 中 daoContext.xml 中例如:由于 7 個(gè) Dao 都必須利用 IoC 容器注入 SessionFactory。我們先配一個(gè) dao 模板,然后 7 個(gè) Dao 就繼承該模板這樣就可以 簡(jiǎn)化 daoContext.xml 文件 以 blogDAO 為例,blogDAO 的以 daoTemplate 為父 Bean ,屬性 class 是 Dao 的實(shí)現(xiàn)類。 其余 6 個(gè) PODAO 的配置相似。從上面的配置文件可以看出Spring Ioc 容器在 Tomcat 啟動(dòng)時(shí)就可以向 Dao 注入 SessionFactory 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話: 01087832641. 19 第第 3 3 節(jié)節(jié)實(shí)現(xiàn)實(shí)現(xiàn) ServiceService 層層 Service 組件采用正面模式封裝多個(gè)DAO 組件, DAO 對(duì)象與 Service 組 件之間的關(guān) Service 組件需要實(shí)現(xiàn)的業(yè)務(wù)方法主要取決于業(yè)務(wù)的需要,通常需要在 業(yè)務(wù)組件中包含對(duì)應(yīng)的方法。 業(yè)務(wù)層組件的實(shí)現(xiàn)業(yè)務(wù)層組件與具體的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)分離,使所有的數(shù)據(jù)庫(kù) 訪問(wèn)依賴于 DAO 組件,定義一個(gè) FacadeManagerImpl 來(lái)包裝 7 個(gè) Dao 這樣就可 以把邏輯層和 Dao 分開,達(dá)到松散耦合的效果。事務(wù)管理將推遲到Service 組 件而不是 DAO 組件,因?yàn)橹挥袑?duì)業(yè)務(wù)邏輯方法添加事務(wù)才有實(shí)際的意義,對(duì)于單 個(gè) DAO 方法(基本的 CRUD 方法)增加事務(wù)操作是沒有太大實(shí)際意義的。關(guān)于事 務(wù)屬性的配置,本系統(tǒng) 使用 Spring 提供的 TransactionProxyFactoryBean 配置事 務(wù)代理。 這樣不必為每個(gè)目標(biāo)對(duì)象配置代理bean; 避免了目標(biāo)對(duì)象被直接調(diào)用。 部暑業(yè)務(wù)層組件單獨(dú)配置系統(tǒng)的業(yè)務(wù)邏輯層,可避免因配置文件過(guò)大引起配置文件 難以閱讀。將配置文件按層和模塊分開配置,可以提高Spring 配置文件的可讀 性和可理解性。在 applicationContext. xml 配置文件中配置數(shù)據(jù)源、事務(wù)管理器、 業(yè)務(wù)邏輯組件和事務(wù)管理器等bean。配置文件如下: PROPAGATION_REQUIRED 代寫:各專業(yè)專、本、碩、博畢業(yè)論文,職稱論文;代發(fā):省級(jí)、國(guó)家級(jí)、核心期刊、CSSCI 來(lái)源核心 期刊論文。 QQ:757518360 電話:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC GUIDE 71:2014 EN Guide for addressing accessibility in standards
- 【正版授權(quán)】 IEC 60245-6:1994 EN-D Rubber insulated cables - Rated voltages up to and including 450/750 V - Part 6: Arc welding electrode cables
- 古詩(shī)文閱讀拓展:初中教材同步教學(xué)
- 教育機(jī)構(gòu)教師聘任及教學(xué)管理合同
- 六一公司慶?;顒?dòng)方案
- 六一商鋪活動(dòng)方案
- 六一布置公司活動(dòng)方案
- 六一晨練活動(dòng)方案
- 六一民警送禮物活動(dòng)方案
- 六一活動(dòng)排桌子活動(dòng)方案
- 燕羅智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)園建筑方案設(shè)計(jì)
- 特許經(jīng)營(yíng)合作合同
- 人教版九年級(jí)物理 14.3能量的轉(zhuǎn)化和守恒(學(xué)習(xí)、上課課件)
- 江蘇省徐州市賈汪區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期中考試數(shù)學(xué)試卷(含解析)
- 《港口粉塵在線監(jiān)測(cè)系統(tǒng)建設(shè)技術(shù)規(guī)范(征求意見稿)》編制說(shuō)明
- 品質(zhì)巡檢個(gè)人工作計(jì)劃
- 醫(yī)院采購(gòu)委員會(huì)管理制度
- 設(shè)備管道 防腐保溫施工方案
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 校車安全行車記錄表
- QCSG1204009-2015電力監(jiān)控系統(tǒng)安全防護(hù)技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論