




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、詳細(xì)設(shè)計(jì)說(shuō)明書(shū)編寫(xiě)規(guī)范案卷號(hào)日期在線音樂(lè)播放系統(tǒng)詳細(xì)設(shè)計(jì)說(shuō)明書(shū) 作 者: 完成日期: 簽 收 人: 簽收日期: 修改情況記錄:版本號(hào)修改批準(zhǔn)人修改人安裝日期簽收人 I詳細(xì)設(shè)計(jì)說(shuō)明書(shū)編寫(xiě)規(guī)范1 引言1.1 編寫(xiě)目的為軟件開(kāi)發(fā)人員在編碼的過(guò)程中有所依據(jù)和參考。面向人員:程序開(kāi)發(fā)人員1.2 背景說(shuō)明:a 待開(kāi)發(fā)的軟件系統(tǒng)的名稱(chēng):在線音樂(lè)播放系統(tǒng)b 列出本項(xiàng)目的任務(wù)提出者:北軟老師c 開(kāi)發(fā)者:鄧凱d 用戶:廣大互聯(lián)網(wǎng)用戶e 將運(yùn)行該項(xiàng)軟件的單位:web服務(wù)器1.3 定義 OMS :Online music system,在線音樂(lè)播放系統(tǒng)。1.4 參考資料列出要用到的參考資料,如:a 本項(xiàng)目的經(jīng)核準(zhǔn)的計(jì)
2、劃任務(wù)書(shū)或合同、上級(jí)機(jī)關(guān)的批文;b 在線音樂(lè)播放系統(tǒng)概要設(shè)計(jì).doc;c 本文件中各處引用的文件、資料,包括所要用到的軟件開(kāi)發(fā)標(biāo)準(zhǔn)。列出這些文件的標(biāo)題、文件編號(hào)、發(fā)表日期和出版單位,說(shuō)明能夠得到這些文件資料的來(lái)源。2 程序系統(tǒng)的結(jié)構(gòu)本程序主要采用四層結(jié)構(gòu),如下所示:業(yè)務(wù)邏輯層(service)數(shù)據(jù)層(DB)數(shù)據(jù)訪問(wèn)層(DAO)用戶層(UI)圖1 系統(tǒng)結(jié)構(gòu)示意圖3 程序(標(biāo)識(shí)符)設(shè)計(jì)說(shuō)明3.1 在線音樂(lè)網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)說(shuō)明:資源的數(shù)量和質(zhì)量將決定了系統(tǒng)的商業(yè)價(jià)值,為了獲取更多的網(wǎng)絡(luò)媒體資源,為系統(tǒng)設(shè)計(jì)了一款針對(duì)互聯(lián)網(wǎng)上音樂(lè)資源的網(wǎng)絡(luò)爬蟲(chóng)。3.1.1爬蟲(chóng)的原理:網(wǎng)絡(luò)爬蟲(chóng)是一個(gè)自動(dòng)提取網(wǎng)頁(yè)的程序,它為搜
3、索引擎從Internet網(wǎng)上下載網(wǎng)頁(yè),是搜索引擎的重要組成。傳統(tǒng)爬蟲(chóng)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲 得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。聚焦爬蟲(chóng)的工作流程較為復(fù)雜,需要根 據(jù)一定的網(wǎng)頁(yè)分析算法過(guò)濾與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng) 頁(yè)URL,并重復(fù)上述過(guò)程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止,另外,所有被爬蟲(chóng)抓取的網(wǎng)頁(yè)將會(huì)被系統(tǒng)存貯,進(jìn)行一定的分析、過(guò)濾,并建立索引,以便之后的查 詢和檢索;對(duì)于聚焦爬蟲(chóng)來(lái)說(shuō),這一過(guò)程所得到的分析結(jié)果還可
4、能對(duì)以后的抓取過(guò)程給出反饋和指導(dǎo)。相對(duì)于通用網(wǎng)絡(luò)爬蟲(chóng),聚焦爬蟲(chóng)還需要解決三個(gè)主要問(wèn)題:(1) 對(duì)抓取目標(biāo)的描述或定義;(2) 對(duì)網(wǎng)頁(yè)或數(shù)據(jù)的分析與過(guò)濾;(3) 對(duì)URL的搜索策略。3.1.2在線音樂(lè)播放系統(tǒng)爬蟲(chóng)的設(shè)計(jì):與通用爬蟲(chóng)不同,在線音樂(lè)播放系統(tǒng)爬蟲(chóng)只針對(duì) 音樂(lè)頻道音樂(lè)頻道,針對(duì)MP3格式的資源。3.1.3爬蟲(chóng)的流程圖:初始URL地址分析信息爬取信息提取信息建立索引否為保證資源的數(shù)量和可用性,每首歌至少抓取3個(gè)不同url地址。輸入: 初始URL集。算法: 廣度優(yōu)先遍歷。輸出: 歌曲-URL地址的索引集。3.2資源驗(yàn)證模塊 資源響應(yīng)模塊對(duì)資源進(jìn)行驗(yàn)證。驗(yàn)證的標(biāo)準(zhǔn)有1. 文件的MIME類(lèi)型2資
5、源的響應(yīng)時(shí)間輸入: URL地址輸出: 是否符合要求的布爾值。3.2.1驗(yàn)證流程 獲取URL地址建立連接測(cè)試響應(yīng)時(shí)間是否為 MP3添加資源否否3.3播放模塊:3.3.1播放模式的選擇: 1)隨機(jī)播放 2)順序播放 3)單曲播放 算法:用一變量記錄當(dāng)前模式,當(dāng)捕獲來(lái)自客戶的模式改變的請(qǐng)求后,變量值變成相應(yīng)的模式的值,調(diào)用不同德程序段空置音樂(lè)播放次序。3.3.2資源的改變:每首歌曲服務(wù)器將會(huì)發(fā)送三個(gè)鏈接至播放器,如果前面的鏈接在3秒之內(nèi)沒(méi)有響應(yīng),則將資源轉(zhuǎn)換為另一個(gè)資源,同時(shí)發(fā)送錯(cuò)誤信息給服務(wù)器。算法: 在系統(tǒng)中設(shè)置定時(shí)器,如果定時(shí)器超時(shí),則自動(dòng)提取另一個(gè)鏈接??蛻舨樵冑Y源服務(wù)器返回資源至客戶端,客
6、戶選擇資源進(jìn)行播放發(fā)送錯(cuò)誤信息第二個(gè)鏈接能否響應(yīng)否發(fā)送錯(cuò)誤信息第三個(gè)鏈接能否響應(yīng)第一個(gè)鏈接能否響應(yīng)否發(fā)送錯(cuò)誤信息至服務(wù)器播放音樂(lè) 3.4查詢模塊: 系統(tǒng)本地資源主要來(lái)自網(wǎng)絡(luò)爬蟲(chóng),同時(shí)支持在線查詢,用于完善查詢功能。用戶可以輸入歌手名,或者歌曲名稱(chēng)查詢,系統(tǒng)首先會(huì)在自己的數(shù)據(jù)庫(kù)查詢,如果沒(méi)有找到相應(yīng)的結(jié)果,那么系統(tǒng)轉(zhuǎn)向互聯(lián)網(wǎng)發(fā)送請(qǐng)求,同時(shí)解析返回的頁(yè)面,提取頁(yè)面中url地址,歌手信息,歌曲信息,將信息按一定格式存入數(shù)據(jù)庫(kù)。同時(shí)將信息發(fā)送給客戶端。這樣就保證了系統(tǒng)資源不斷豐富??蛻舨樵冑Y源服務(wù)器在本地?cái)?shù)據(jù)庫(kù)查詢互聯(lián)網(wǎng)上查詢是否資源是否存在否發(fā)送錯(cuò)誤信息至服務(wù)器發(fā)送客戶端播放音樂(lè)解析頁(yè)面,獲取信息,
7、并存入數(shù)據(jù)庫(kù)是3.4.1具體功能 :1,、 歌手查詢。 查詢出系統(tǒng)內(nèi)所存的所有歌手信息。點(diǎn)擊歌手會(huì)獲得此歌手所唱的所有歌曲。點(diǎn)擊歌曲可以加入播放器播放,拖動(dòng)可以加入我的收藏夾,所有的操作都會(huì)由系統(tǒng)給出提示。2、歌曲查詢。 輸入歌曲名稱(chēng),可以獲得所有同名的歌曲,以及其歌手。 3、歌曲-歌手查詢。 同時(shí)輸入歌曲和歌手信息,可以輸出與此相匹配的歌曲和歌手信息,同時(shí),如果在本地?cái)?shù)據(jù)庫(kù)中不存在,系統(tǒng)將轉(zhuǎn)向互聯(lián)網(wǎng)查詢,并將查詢結(jié)果存入數(shù)據(jù)庫(kù),然后發(fā)送給客戶端。 4、下載 當(dāng)用戶單擊某一個(gè)歌曲的條目時(shí),在系統(tǒng)界面的下框中會(huì)出現(xiàn) 三個(gè)可選項(xiàng)-下載、MV。如果用戶單擊下載,系統(tǒng)會(huì)提取歌曲條目中的url地址,自動(dòng)
8、建立連接。如果連接成功,則會(huì)彈出MP3的下載框??梢院芊奖愕貫橛脩籼峁┫螺d服務(wù)。 如果用戶點(diǎn)擊 MV ,則系統(tǒng)會(huì)自動(dòng)提取歌手信息,歌曲信息,發(fā)送請(qǐng)求至 同時(shí)將新建窗口,將返回的結(jié)果顯示在新窗口中。 選取歌曲條目系統(tǒng)出現(xiàn)下載,MV 選擇框選擇 下載選擇 下載系統(tǒng)解析出URL地址系統(tǒng)解析出歌手歌曲信息并向發(fā)送請(qǐng)求彈出下載框在新頁(yè)面顯示查詢結(jié)果3.5用戶反饋模塊: 用戶反饋模塊主要用來(lái)收集用戶的反饋信息,在播放的過(guò)程中,會(huì)因?yàn)楦鞣N各樣的原因,導(dǎo)致歌曲播放的效果不盡如人意,還有很大一部分可能會(huì)出現(xiàn)內(nèi)容與名稱(chēng)不匹配,而資源驗(yàn)證模塊的工作只能初步地判斷資源的可用性,所以為了提供更好的用戶體驗(yàn),需要廣大的用
9、戶積極地參與系統(tǒng)的改進(jìn)。 當(dāng)歌曲被選中播放時(shí),系統(tǒng)會(huì)出現(xiàn)錯(cuò)誤報(bào)告的選擇框,里面所羅列的條目有以下幾條 1.、鏈接速度過(guò)慢 2.、是網(wǎng)友翻唱,或者其他類(lèi)型的音頻 3、 是另外一首歌 4.、歌曲質(zhì)量差 5、是其他以上沒(méi)有列出的原因 用戶可以選擇其中的一項(xiàng),向服務(wù)器發(fā)送錯(cuò)誤報(bào)告,服務(wù)器會(huì)記錄每一條錯(cuò)誤報(bào)告。 選取歌曲播放系統(tǒng)出現(xiàn)錯(cuò)誤報(bào)告選擇框選擇 錯(cuò)誤信息 向系統(tǒng)發(fā)送錯(cuò)誤報(bào)告系統(tǒng)提取正在播放的歌曲的url地址系統(tǒng)存儲(chǔ)錯(cuò)誤報(bào)告3.6系統(tǒng)提示模塊: 為了加強(qiáng)與用戶的互動(dòng),系統(tǒng)提供了豐富的提示功能 ,當(dāng)用戶的行為觸發(fā)不同的事件的時(shí)候,將會(huì)彈出不同的提示框,用以給用戶適當(dāng)?shù)奶崾?。系統(tǒng)提示模塊貫穿于整個(gè)系統(tǒng)。
10、用戶動(dòng)作觸發(fā)事件系統(tǒng)捕捉事件辨別事件 呈現(xiàn)不同的提示 用戶注冊(cè)模塊: 3.7 用戶登錄模塊: 用戶的權(quán)限分為 游客,會(huì)員,管理員。登錄后根據(jù)不同的權(quán)限,所看到的界面不一樣,當(dāng)會(huì)員登錄后,將不可見(jiàn)到管理員所能操作的模塊,管理員登錄后,將會(huì)呈現(xiàn)出系統(tǒng)管理模塊。用戶點(diǎn)擊登錄系統(tǒng)彈出登錄框用戶輸入信息 客戶端驗(yàn)證信息服務(wù)器驗(yàn)證信息是否存在是否為管理員 呈現(xiàn)用戶界面呈現(xiàn)系統(tǒng)管理頁(yè)面 3.8 系統(tǒng)管理模塊:是否存在 主要對(duì)系統(tǒng)中的資源進(jìn)行管理,處理用戶以及系統(tǒng)提交的錯(cuò)誤報(bào)告。 主要采用了以下幾個(gè)措施來(lái)維護(hù)系統(tǒng)資源。 1.、利用資源驗(yàn)證模塊的測(cè)試功能,對(duì)錯(cuò)誤信息為 鏈接速度過(guò)慢的資源進(jìn)行測(cè)試,如果測(cè)試結(jié)果為
11、資源不符合要求,則替換資源。 2,、對(duì)其他類(lèi)型的錯(cuò)誤信息,提供試聽(tīng)功能,人工地辨別錯(cuò)誤。 3.、對(duì)已經(jīng)辨別的錯(cuò)誤,提供更換資源的功能。 利用網(wǎng)絡(luò)爬蟲(chóng),在互聯(lián)網(wǎng)上自動(dòng)地尋找與先前的資源不同的資源。管理員登錄 系統(tǒng)提供系統(tǒng)管理界面獲取錯(cuò)誤信息系統(tǒng)可辨別的錯(cuò)誤?管理員人工辨別系統(tǒng)自動(dòng)辨別更換資源 3.9娛樂(lè)頻道模塊: 此模塊利用rss技術(shù),為用戶提供更為方便快捷的娛樂(lè)資訊。3.9.1 RSS簡(jiǎn)介 RSS是在線共享內(nèi)容的一種簡(jiǎn)易方式(也叫聚合內(nèi)容,Really Simple Syndication)。通常在時(shí)效性比較強(qiáng)的內(nèi)容上使用RSS訂閱能更快速獲取信 息,網(wǎng)站提供RSS輸出,有利于讓用戶獲取網(wǎng)站內(nèi)
12、容的最新更新。 網(wǎng)絡(luò)用戶可以在客戶端借助于支持RSS的新聞聚合工具軟件(例如 SharpReader,NewzCrawler、FeedDemon),在不打開(kāi)網(wǎng)站內(nèi)容頁(yè)面的情況下閱讀支持RSS輸出的網(wǎng)站內(nèi)容。 本系統(tǒng)利用爬蟲(chóng)的頁(yè)面下載和解析功能,抓取各大網(wǎng)站的rss發(fā)布地址,下載并解析頁(yè)面??梢跃酆隙鄠€(gè)網(wǎng)站的信息。 獲取rss地址 服務(wù)器爬蟲(chóng)下載頁(yè)面 發(fā)送頁(yè)面至客戶端客戶端JavaScript解析頁(yè)面向客戶展現(xiàn)信息3.10注冊(cè)模塊: 3.10.1功能:用戶注冊(cè),用戶需要填寫(xiě)用戶名,密碼,在填寫(xiě)完用戶名之后,瀏覽器會(huì)異步地發(fā)送請(qǐng)求給服務(wù)器,驗(yàn)證用戶名是否可用。獲取用戶姓名 AJAX引擎發(fā)送請(qǐng)求驗(yàn)證
13、用戶名是否可用? 繼續(xù)填寫(xiě)信息 彈出錯(cuò)誤信息3.11我的收藏: 系統(tǒng)為每個(gè)會(huì)員用戶維護(hù)一個(gè)我的收藏。 會(huì)員用戶可以將自己喜歡的歌曲添加進(jìn)我的收藏,可以講我的收藏中的歌曲添加進(jìn)入播放器。 用戶動(dòng)作系統(tǒng)捕捉事件查看是否登錄添加進(jìn)收藏夾提示用戶登錄 4系統(tǒng)架構(gòu)設(shè)計(jì): 4.1.、 前臺(tái) : JavaScript構(gòu)建 AJAX引擎 AJAX的最大機(jī)遇在于用戶體驗(yàn)。在使應(yīng)用更快響應(yīng)和創(chuàng)新的過(guò)程中,定義Web應(yīng)用的規(guī)則正在被重寫(xiě);因此開(kāi)發(fā)人員必須更注重用戶?,F(xiàn)在用戶已經(jīng)逐漸習(xí)慣 如何使用Web應(yīng)用了。例如用戶通常希望每一次按鈕點(diǎn)擊會(huì)導(dǎo)致幾秒的延遲和屏幕刷新,但AJAX正在打破這種長(zhǎng)時(shí)間的狀況 在線音樂(lè)系統(tǒng)主
14、要的目的是為用戶提供一流的體驗(yàn),所以在系統(tǒng)的實(shí)現(xiàn)中應(yīng)該大量地采用 AJAX技術(shù)。 4. 2、 后臺(tái) : struts2 spring hibernate 框架。 Struts 用于將請(qǐng)求與視圖分離, hibernate 實(shí)現(xiàn)對(duì)象模型到關(guān)系模型的映射。Spring用于實(shí)現(xiàn)系統(tǒng)的控制反轉(zhuǎn)。 視圖層控制層模型層持久化層數(shù)據(jù)庫(kù)層弱減系關(guān)賴依依賴關(guān)系增強(qiáng)StrutsManagerDAOHibernateUtilVO/POSpring4.2.1視圖層設(shè)計(jì):Struts 是一組相互協(xié)作的類(lèi)、servlet 和JSP 標(biāo)記組成的一個(gè)可重用的 MVC設(shè)計(jì)。 這個(gè)定義表示 Struts 是一個(gè)框架,而
15、不是一個(gè)庫(kù),但 Struts 也包含了豐富的標(biāo)記庫(kù)和獨(dú)立于該框架工作的實(shí)用程序類(lèi)。1.Struts的基本特點(diǎn) 對(duì)Servlet和JSP的增強(qiáng), 減少代碼編寫(xiě)量 基于Web MVC模式,規(guī)范java Web開(kāi)發(fā) 改善java Web開(kāi)發(fā)的擴(kuò)展性 2.Struts的優(yōu)缺點(diǎn)優(yōu)點(diǎn) :使用廣泛, 用戶眾多, 就業(yè)有優(yōu)勢(shì); 歷史較長(zhǎng), 有成熟的第三方工具支持; 有很多web應(yīng)用使用struts. 缺點(diǎn): 由于歷史較長(zhǎng), 一些功能比較落后; 配置較為繁瑣; 編程模型需要線程安全的支持, 影響性能.
16、 3.struts的MVC簡(jiǎn)介1) Struts中的Controller(控制器) 命令設(shè)計(jì)模式的實(shí)現(xiàn): Struts 的控制器將事件(事件通常是 HTTP post)映射到類(lèi)的一個(gè) servlet.ActionServlet(Command)創(chuàng)建并使用Action、ActionForm 和 ActionForward .通過(guò)struts-config.xml 文件配置該 Command.從而擴(kuò)展 Action 和 ActionForm 來(lái)解決特定的問(wèn)題。 可以通過(guò)擴(kuò)展 ActionServlet 來(lái)添加 Command 功能。在St
17、ruts框架中控制器組件由三個(gè)部分構(gòu)成: 1消息控制模塊;用戶所有的提交請(qǐng)求都發(fā)往消息控制模塊,在由消息總線模塊根據(jù)視圖映射模塊找到消息處理模塊來(lái)執(zhí)行處理邏輯。 消息控制模塊接收所有用戶的請(qǐng)求,并根據(jù)請(qǐng)求視圖找到處理。Strtus中通過(guò)ActionServlet和RequestProcessor類(lèi)來(lái)完成。2消息處理模塊; 該模塊執(zhí)行該消息的邏輯處理,因此通常由用戶擴(kuò)展實(shí)現(xiàn)。 Struts中通過(guò)Action類(lèi)來(lái)實(shí)現(xiàn)。 3視圖映射模塊;控制器邏輯和視圖邏輯之間的結(jié)合是通過(guò)配置模塊和配置文件建立其的鏈接。
18、Struts中配置模塊通過(guò)ModuleConfig類(lèi)來(lái)完成,而配置文件由struts-config.xml文件提供。4.Struts中的View(視圖) 視圖組件通過(guò)JSP組件實(shí)現(xiàn)的。Struts框架對(duì)視圖組件進(jìn)行了擴(kuò)展和封裝。 Struts對(duì)視圖的擴(kuò)展提供了一組擴(kuò)展服務(wù)器標(biāo)簽用來(lái)提供視圖顯示以及傳遞數(shù)據(jù)到處理緩沖,而處理緩沖由ActionForm的擴(kuò)展類(lèi)來(lái)實(shí)現(xiàn)。 Struts框架利用ActionForm Bean來(lái)實(shí)現(xiàn)視圖與控制器之間的數(shù)據(jù)的交互,維持會(huì)話級(jí)或請(qǐng)求級(jí)的模型的狀態(tài)。 服務(wù)器標(biāo)簽主要包括:
19、0; Html視圖標(biāo)簽; Logic邏輯流程控制標(biāo)簽; Bean數(shù)據(jù)緩沖讀取標(biāo)簽; 5.Struts中的Model(模型) 1,Struts框架中并沒(méi)有定義特定的模型組件,而是希望由用戶自己決定選擇合理的模型組件。 J2EE中可用的模型組件包括: JavaBean 用戶定義組件; EJB 組件,由EJB容器實(shí)現(xiàn)組件; JDO 未來(lái)J2EE數(shù)據(jù)訪問(wèn)模型;
20、60; 一些擴(kuò)展框架如:Hibernate; 2,模型中狀態(tài)的級(jí)別 會(huì)話級(jí)或請(qǐng)求級(jí):ActionForm bean來(lái)維持;持久級(jí):模型組件來(lái)維持; 根據(jù)需求,需要以下action響應(yīng)不同的請(qǐng)求; 系統(tǒng)對(duì)象模型設(shè)計(jì): 4.2.2業(yè)務(wù)邏輯層設(shè)計(jì):Spring簡(jiǎn)介Spring作為實(shí)現(xiàn)J2EE的一個(gè)全方位應(yīng)用程序框架,為開(kāi)發(fā)企業(yè)級(jí)應(yīng)用提供了一個(gè)健壯、高效的解決方案。所謂全方位,主要有以下幾個(gè)特點(diǎn): 1 非侵入式:對(duì)于寫(xiě)代碼從來(lái)不考慮復(fù)用和移植的程序員來(lái)說(shuō),這一點(diǎn)根本就沒(méi)有吸引力,那么請(qǐng)?zhí)^(guò)。所
21、謂非侵入式是指Spring框架的API不會(huì)在業(yè)務(wù)邏輯上出現(xiàn),也就是說(shuō)我們的業(yè)務(wù)邏輯應(yīng)該是純凈的,不能出現(xiàn)與業(yè)務(wù)邏輯無(wú)關(guān)的代碼。首先針對(duì)應(yīng)用而言,這樣我們才能將業(yè)務(wù)邏輯從當(dāng)前應(yīng)用中剝離出來(lái),從而在其他的應(yīng)用中實(shí)現(xiàn)復(fù)用;其次針對(duì)框架而言,由于業(yè)務(wù)邏輯中沒(méi)有Spring的API,所以業(yè)務(wù)邏輯也可以從Spring框架快速的移植到其他框架。2 容器:Spring提供容器功能,容器可以管理對(duì)象的生命周期,對(duì)象與對(duì)象之間的依賴關(guān)系。你可以寫(xiě)一個(gè)配置文件(通常是xml文件),在上面定義對(duì)象的名字,是否是單例,以及設(shè)置與其他對(duì)象的依賴關(guān)系。那么在容器啟動(dòng)之后,這些對(duì)象就被實(shí)例化好了,你直接去用就好了,而且依賴關(guān)
22、系也建立好了。 3 IOC:控制反轉(zhuǎn),謂之“依賴關(guān)系的轉(zhuǎn)移”,如果以前都是依賴于實(shí)現(xiàn),那么現(xiàn)在反轉(zhuǎn)為依賴于抽象吧,其實(shí)它的核心思想就是要面向接口編程,至于何謂接口何謂抽象,以及它們的好處,多看看設(shè)計(jì)模式吧,這里就不費(fèi)口舌了。 4 依賴注入:建立對(duì)象與對(duì)象之間依賴關(guān)系的實(shí)現(xiàn),包括接口注入、構(gòu)造注入、set注入,在Spring中只支持后兩種 5 AOP:面向方面編程,我們可以把日志、安全、事務(wù)管理等服務(wù)(或功能)理解成一個(gè)“方面”,那么以前這些服務(wù)一直是直接寫(xiě)在業(yè)務(wù)邏輯的代碼當(dāng)中的,這有兩點(diǎn)
23、不好;首先業(yè)務(wù)邏輯不純凈,其次這些服務(wù)被很多業(yè)務(wù)邏輯反復(fù)使用,完全可以剝離出來(lái)做到復(fù)用。那么AOP就是這些問(wèn)題的解決方案,我們可以把這些服務(wù)剝離出來(lái)形成一個(gè)“方面”,以期做到復(fù)用;然后將“方面”動(dòng)態(tài)的插入到業(yè)務(wù)邏輯中讓業(yè)務(wù)邏輯能夠享受到此“方面”的服務(wù) 其他還有一些特點(diǎn)不是Spring的核心,這里只做簡(jiǎn)單陳述,如:對(duì)JDBC的封裝與簡(jiǎn)化,提供事務(wù)管理功能,對(duì)O/R mapping工具(hibernate、iBATIS)的整合;提供MVC解決方案,也可以與其他web框架(Struts、JSF)進(jìn)行整合;還有對(duì)JNDI、mail等服務(wù)進(jìn)行封裝。4.2.3數(shù)據(jù)庫(kù)層
24、設(shè)計(jì):系統(tǒng)ER圖: Hibernate簡(jiǎn)介Hibernate是目前流行的ORM框架。ORM(Object/Relational Mapper)即“對(duì)象/關(guān)系型數(shù)據(jù)映射”,這是一種主要的對(duì)象持久化技術(shù),需要同時(shí)使用面向?qū)ο蠛完P(guān)系型數(shù)據(jù)進(jìn)行開(kāi)發(fā)。Hibernate的輕量級(jí)ORM模型逐步確立了在Java對(duì)象關(guān)系映射架構(gòu)中的領(lǐng)導(dǎo)地位,而且它的很多設(shè)計(jì)還被J2EE標(biāo)準(zhǔn)組織吸納成為EJB3.0規(guī)范化標(biāo)準(zhǔn)。1. 什么是ORMORM的全稱(chēng)是Object Relational Mapping,即對(duì)象關(guān)系映射。它的實(shí)現(xiàn)思想就是將關(guān)系數(shù)據(jù)庫(kù)中表的數(shù)據(jù)映射成為對(duì)象,以對(duì)象的形式展現(xiàn),這樣開(kāi)發(fā)人員就可以把對(duì)數(shù)據(jù)庫(kù)的操作轉(zhuǎn)化為對(duì)這些對(duì)象的操作。因此它的目的是為了方便開(kāi)發(fā)人員以面向?qū)ο蟮乃枷雭?lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。2什么是Hibernate對(duì)于Hibernate的稱(chēng)呼有很多,比如工具、技術(shù)、框架以及解決方案等,這些都可以,重要的是大家要知道它的作用。在這里我習(xí)慣性稱(chēng)它為框架,它是一種能實(shí)現(xiàn)ORM的框架。能實(shí)現(xiàn)ORM這個(gè)功能的框架有很多,Hibernate可以說(shuō)是這些框架中最流行、最受開(kāi)發(fā)者關(guān)注的,甚至連JBoss公司也把它吸收進(jìn)來(lái),利用它在自己的項(xiàng)目中實(shí)現(xiàn)ORM功能。3ORM的實(shí)現(xiàn)原理現(xiàn)在在Java領(lǐng)域大家對(duì)H
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CHIA 24.1-2022兒童營(yíng)養(yǎng)與健康調(diào)查基本數(shù)據(jù)集第1部分:0~23月齡
- T/CGCC 78-2023區(qū)域商業(yè)價(jià)值評(píng)價(jià)指南
- T/CGCC 10-2018交通樞紐型商業(yè)經(jīng)營(yíng)管理要求
- T/CFDCC 0607-2023健康整家定制評(píng)價(jià)通則
- T/CFDCC 0213-2021家居企業(yè)信用等級(jí)評(píng)價(jià)準(zhǔn)則
- T/CECS 10343-2023不銹鋼槽式預(yù)埋組件
- T/CECS 10027-2019綠色建材評(píng)價(jià)建筑幕墻
- T/CCS 006-2023智能化煤礦云計(jì)算部署與管理技術(shù)要求
- T/CCOA 62-2023大豆油生產(chǎn)技術(shù)規(guī)范
- T/CCMA 0202-2024工程建材制品原材料攪拌機(jī)
- 【2023《上汽集團(tuán)公司營(yíng)運(yùn)能力現(xiàn)狀及問(wèn)題探析》8300字(論文)】
- 我是小小講解員博物館演講稿
- 糧安工程糧庫(kù)智能化升級(jí)改造 投標(biāo)方案(技術(shù)標(biāo))
- 吉塔行星模擬課程
- 《反本能 如何對(duì)抗你的習(xí)以為?!纷x書(shū)筆記思維導(dǎo)圖PPT模板下載
- 西南交11春學(xué)期《模擬電子技術(shù)A》離線作業(yè)
- 施工單位平安工地考核評(píng)價(jià)表(標(biāo)準(zhǔn))
- JJF 1855-2020純度標(biāo)準(zhǔn)物質(zhì)定值計(jì)量技術(shù)規(guī)范有機(jī)物純度標(biāo)準(zhǔn)物質(zhì)
- GB/T 35194-2017土方機(jī)械非公路機(jī)械傳動(dòng)寬體自卸車(chē)技術(shù)條件
- GB 6245-2006消防泵
- SMT通用作業(yè)指導(dǎo)書(shū)
評(píng)論
0/150
提交評(píng)論