畢業(yè)設(shè)計(jì)(論文)-基于.net 的 PSP 系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn).doc_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于.net 的 PSP 系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn).doc_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于.net 的 PSP 系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn).doc_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于.net 的 PSP 系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn).doc_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于.net 的 PSP 系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn).doc_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

西南交通大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 第II頁(yè) 西 南 交 通 大 學(xué)專科畢業(yè)設(shè)計(jì)(論文)基于.net的PSP系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn)年 級(jí):2011級(jí)姓 名:專 業(yè):軟件開發(fā)指導(dǎo)老師: 2012年6月西南交通大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 第II頁(yè)院 系 信息科學(xué)與技術(shù)學(xué)院 專 業(yè) 軟件開發(fā)_ 學(xué) 號(hào) 姓 名 譚琳_ 題 目 指導(dǎo)教師評(píng) 語(yǔ) 指導(dǎo)教師 (簽章)評(píng) 閱 人評(píng) 語(yǔ) 評(píng) 閱 人 (簽章)成 績(jī) 答辯委員會(huì)主任 (簽章)年 月 日西南交通大學(xué)專科畢業(yè)設(shè)計(jì)(論文) 第21頁(yè)摘 要 本系統(tǒng)主要使用了Jsp、Struts2、Spring以及Hibernate技術(shù),采用目前網(wǎng)站開發(fā)中較為流行的MVC設(shè)計(jì)架構(gòu)。Struts2技術(shù)主要用于處理頁(yè)面的跳轉(zhuǎn)和對(duì)業(yè)務(wù)方法的調(diào)用,目的是為了分離視圖層和控制層。Spring 技術(shù)主要用于在Struts與Hibernate技術(shù)之間的解耦操作,提高程序的重用性、可維護(hù)性以及健壯性。Hibernate技術(shù)是為了實(shí)現(xiàn)用面向?qū)ο蟮乃枷雭?lái)管理和使用數(shù)據(jù)庫(kù)技術(shù),實(shí)現(xiàn)程序與數(shù)據(jù)庫(kù)之間的低耦合。 文章介紹了使用java和xml技術(shù)開發(fā)網(wǎng)站系統(tǒng)的詳細(xì)過(guò)程,介紹了項(xiàng)目背景和開發(fā)意義,同時(shí)包含了對(duì)系統(tǒng)開發(fā)環(huán)境與技術(shù)的介紹。在系統(tǒng)分析與設(shè)計(jì)部分,對(duì)系統(tǒng)功能做出了詳細(xì)的描述,并對(duì)各個(gè)功能模塊進(jìn)行了分析,包括模塊顯示界面、使用的數(shù)據(jù)及函數(shù)調(diào)用過(guò)程等。使用類圖闡述了本系統(tǒng)的設(shè)計(jì)思路,使用用例圖和時(shí)序圖來(lái)協(xié)助說(shuō)明系統(tǒng)的設(shè)計(jì)方案。在系統(tǒng)實(shí)現(xiàn)與測(cè)試階段,使用了流程圖進(jìn)一步展現(xiàn)了系統(tǒng)功能的實(shí)現(xiàn)過(guò)程。 該系統(tǒng)將會(huì)給各鐘表銷售門店帶來(lái)方便,其功能需求也會(huì)進(jìn)一步提高和穩(wěn)定。我們期待該系統(tǒng)能為當(dāng)今社會(huì)更好的服務(wù)。目 錄第1章 緒論11.1 開發(fā)背景11.2開發(fā)思路及主要方法11.3.我的管理2第2章開發(fā)語(yǔ)言32.1.1 系統(tǒng)開發(fā)工具與運(yùn)行平臺(tái)32.1.2 開發(fā)語(yǔ)言42.2 相關(guān)技術(shù)簡(jiǎn)介52.2.1動(dòng)態(tài)編程52.2.2系統(tǒng)采用技術(shù)介紹10第3章系統(tǒng)分析與設(shè)計(jì)113.1 用戶需求的獲取113.2 系統(tǒng)用戶分析113.3 系統(tǒng)功能分析113.4數(shù)據(jù)庫(kù)分析與設(shè)計(jì)123.5 系統(tǒng)詳細(xì)設(shè)計(jì)123.5.1 系統(tǒng)頁(yè)面設(shè)計(jì)12第4章 系統(tǒng)實(shí)現(xiàn)與測(cè)試134.1 重要模塊說(shuō)明13結(jié)論16致謝18參考文獻(xiàn)19第1章 緒論1.1 開發(fā)背景 個(gè)人軟件過(guò)程(PSP)是一種可用于控制、管理和改進(jìn)個(gè)人工作方式的自我持續(xù)改進(jìn)過(guò)程,是一個(gè)包括軟件開發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。PSP與具體 的技術(shù)(程序設(shè)計(jì)語(yǔ)言、工具或者設(shè)計(jì)方法)相對(duì)獨(dú)立,其原則能夠應(yīng)用到幾乎任何的軟件工程任務(wù)之中。PSP能夠說(shuō)明個(gè)體軟件過(guò)程的原則; 幫助軟件工程師作出準(zhǔn)確的計(jì)劃;確定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟;建立度量個(gè)體軟件過(guò)程改善的基準(zhǔn);確定過(guò)程的改變對(duì)軟件工程師能力的影響。其中,SP又包括過(guò)程改進(jìn),時(shí)間管理,制訂計(jì)劃缺陷管理幾個(gè)方面。在CMM1.1版本的18個(gè)關(guān)鍵過(guò)程域中有12個(gè)與PSP有關(guān),據(jù)統(tǒng)計(jì),軟件項(xiàng)目開發(fā)成本的70%取決于軟件開發(fā)人員個(gè)人的技能、經(jīng)驗(yàn)和工作習(xí)慣。因此, 一個(gè)單位的軟件開發(fā)人員如能接受PSP培訓(xùn),對(duì)該單位軟件能力成熟度的升級(jí)是一個(gè)有力的保證。CMM側(cè)重于軟件企業(yè)中有關(guān)軟件過(guò)程的宏觀管理,面向軟件開 發(fā)單位,PSP則側(cè)重于企業(yè)中有關(guān)軟件過(guò)程的微觀優(yōu)化,面向軟件開發(fā)人員。二者互相支持,互相補(bǔ)充,缺一不可。按照PSP規(guī)程,改進(jìn)軟件過(guò)程的步驟首先需要明確質(zhì)量目標(biāo),也就是軟件將要在功能和性能上滿足的要求和用戶潛在的需求。接著就是度量產(chǎn)品質(zhì)量,有了目標(biāo)還 不行,目標(biāo)只是一個(gè)原則性的東西,還不便于實(shí)際操作和判斷,因此,必須對(duì)目標(biāo)進(jìn)行分解和度量,使軟件質(zhì)量能夠測(cè)量。然后就是理解當(dāng)前過(guò)程,查找問(wèn)題, 并對(duì)過(guò)程進(jìn)行調(diào)整。最后應(yīng)用調(diào)整后的過(guò)程,度量實(shí)踐結(jié)果,將結(jié)果與目標(biāo)做比較,找出差距,分析原因,對(duì)軟件過(guò)程進(jìn)行持續(xù)改進(jìn)。就象CMM為軟件企業(yè)的能力提供一個(gè)階梯式 的進(jìn)化框架一樣,PSP為個(gè)體的能力也提供了一個(gè)階梯式的進(jìn)化框架,以循序漸進(jìn)的方法介紹過(guò)程的概念,每一級(jí)別都包含了更低一級(jí)別中的所有元素,并增加了 新的元素。這個(gè)進(jìn)化框架是學(xué)習(xí)PSP過(guò)程基本概念的好方法,它賦予軟件人員度量和分析工具,使其清楚地認(rèn)識(shí)到自己的表現(xiàn)和潛力,從而可以提高自己的技能和 水平。1.2開發(fā)思路及主要方法在上這門選修課之前,我對(duì)個(gè)人軟件過(guò)程可以說(shuō)是一點(diǎn)都不了解,只知道是一款游戲機(jī)。經(jīng)過(guò)了老師的講解,我才對(duì)個(gè)人軟件過(guò)程有了初步的了解。 原來(lái),我以為開發(fā)軟件靠的只是技術(shù),只要掌握了編程技巧,把相應(yīng)的語(yǔ)言學(xué)好,就能開發(fā)出優(yōu)秀的軟件??墒?,學(xué)習(xí)幾節(jié)課后,聽了您對(duì)的講解,我才明白要要想開發(fā)出好的軟件,不僅需要真才實(shí)干,還要有好的規(guī)劃好自己的時(shí)間和其他方面。由于我是計(jì)算機(jī)專業(yè)的學(xué)生,可能對(duì)這些知識(shí)接觸較少,有說(shuō)的不太對(duì)的地方,還請(qǐng)老師以后多指教。我認(rèn)為包括了很多方面,其中有對(duì)代碼的不斷修改,通過(guò)測(cè)量來(lái)發(fā)現(xiàn)問(wèn)題,并改正問(wèn)題。還有對(duì)自己的時(shí)間的合理利用,做切實(shí)可行的計(jì)劃,按照計(jì)劃進(jìn)行工作,這樣可以了解計(jì)劃存在哪些問(wèn)題,有助于更好的計(jì)劃下一個(gè)項(xiàng)目。按照好的計(jì)劃完成工作,由于軟件中的許多錯(cuò)誤都是由于粗心大意引起的,所以合理利用時(shí)間,計(jì)劃工作是很有用的,可以有效的減少這些錯(cuò)誤。我認(rèn)為也是一種很好的工作和學(xué)習(xí)的方法,它可以使我們更好的學(xué)習(xí)和工作,最大化的利用時(shí)間,提高工作效率。這就是我對(duì)的的認(rèn)識(shí),以后的工作中我會(huì)通過(guò)對(duì)自己的工作做較好的計(jì)劃,更好的體會(huì)給工作帶來(lái)的益處,對(duì)它進(jìn)一步的了解。1.3.我的管理(1)制定計(jì)劃每天要做的事情很多,如果不制定一個(gè)很好的計(jì)劃就總會(huì)不能按計(jì)劃完作,尤其到了周六日的時(shí)候,早晨一睡就是一上午,會(huì)浪費(fèi)很多時(shí)間,所以我自已制定了周日一天的計(jì)劃。(2)過(guò)程改進(jìn)需要不斷的改進(jìn)。就是在不斷的測(cè)量中發(fā)現(xiàn)問(wèn)題和改正錯(cuò)誤。這學(xué)期的c語(yǔ)言作業(yè)中我就通過(guò)不斷的調(diào)試,發(fā)現(xiàn)錯(cuò)誤,然后改進(jìn),并完善程序。我編的是一個(gè)貪食蛇的小游戲,編好后,我發(fā)現(xiàn)只能實(shí)現(xiàn)玩家控制一條小蛇吃蛋,增加長(zhǎng)度。雖然做好了,但是和我玩過(guò)的絕大多數(shù)游戲比起來(lái),簡(jiǎn)直太簡(jiǎn)單了,可玩性相當(dāng)差,于是我又在頭腦中形成了我想要的游戲的樣子,以那樣的為目標(biāo),一點(diǎn)點(diǎn)改進(jìn)我程序。如加入音樂,加入其他食物(得分食物,加速食物等),增加主菜單,增加一些關(guān)卡,調(diào)試過(guò)程也是一個(gè)不斷與目標(biāo)看齊,改進(jìn)程序的過(guò)程,就像一開始我加入音樂時(shí),發(fā)現(xiàn)是在游戲之前播放音樂,播放完成后,才能進(jìn)入游戲,于是我查找書籍,反復(fù)調(diào)試,最后成功達(dá)到音樂做為背景音樂的效果。就這樣朝著目標(biāo)不斷改進(jìn),最后終于達(dá)到了期望的結(jié)果。第2章開發(fā)語(yǔ)言2.1.1 系統(tǒng)開發(fā)工具與運(yùn)行平臺(tái)由于Linux是一套具有Unix全部功能的免費(fèi)操作系統(tǒng),它在眾多的軟件中占有很大的優(yōu)勢(shì),為廣大的計(jì)算機(jī)愛好者提供了學(xué)習(xí)、探索以及修改計(jì)算機(jī)操作系統(tǒng)內(nèi)核的機(jī)會(huì)。操作系統(tǒng)是一臺(tái)計(jì)算機(jī)必不可少的系統(tǒng)軟件,是整個(gè)計(jì)算機(jī)系統(tǒng)的靈魂。一個(gè)操作系統(tǒng)是一個(gè)復(fù)雜的計(jì)算機(jī)程序集,它提供操作過(guò)程的協(xié)議或行為準(zhǔn)則。沒有操作系統(tǒng),計(jì)算機(jī)就無(wú)法工作,就不能解釋和執(zhí)行用戶輸入的命令或運(yùn)行簡(jiǎn)單的程序。大多數(shù)操作系統(tǒng)都是由一些主要的軟件公司支持的商品化程序,用戶只能有償使用。如果用戶購(gòu)買了一個(gè)操作系統(tǒng),他就必須滿足供應(yīng)商所要求的一切條件。因?yàn)椴僮飨到y(tǒng)是系統(tǒng)程序,用戶不能擅自修改或試驗(yàn)操作系統(tǒng)的內(nèi)核。這對(duì)于廣大計(jì)算機(jī)愛好者來(lái)說(shuō)無(wú)疑是一種束縛。要想發(fā)揮計(jì)算機(jī)的作用,僅有操作系統(tǒng)還不夠,用戶還必須要有各種應(yīng)用程序的支持。應(yīng)用程序是用于處理某些工作(如字處理)的軟件包,通常它也只能有償使用。每個(gè)應(yīng)用程序的軟件包都為特定的操作系統(tǒng)和機(jī)器編寫。使用者無(wú)權(quán)修改這些應(yīng)用程序。使用Linux,可以將操作系統(tǒng)變成一種操作環(huán)境。由于Linux是一套自由軟件,用戶可以無(wú)償?shù)氐玫剿捌湓创a,可以無(wú)償?shù)孬@得大量的應(yīng)用程序,而且可以任意地修改和補(bǔ)充它們。這對(duì)用戶學(xué)習(xí)、了解Unix操作系統(tǒng)的內(nèi)核非常有益。 學(xué)習(xí)和使用Linux,能為用戶節(jié)省一筆可觀的資金。Linux是目前唯一可免費(fèi)獲得的、為PC機(jī)平臺(tái)上的多個(gè)用戶提供多任務(wù)、多進(jìn)程功能的操作系統(tǒng),這是人們要使用它的主要原因。就PC機(jī)平臺(tái)而言,Linux提供了比其他任何操作系統(tǒng)都要強(qiáng)大的功能,Linux還可以使用戶遠(yuǎn)離各種商品化軟件提供者促銷廣告的誘惑,再也不用承受每過(guò)一段時(shí)間就升級(jí)之苦,因此,可以節(jié)省大量用于購(gòu)買或升級(jí)應(yīng)用程序的資金。Linux不僅為用戶提供了強(qiáng)大的操作系統(tǒng)功能,而且還提供了豐富的應(yīng)用軟件。用戶不但可以從Internet上下載Linux及其源代碼,而且還可以從Internet上下載許多Linux的應(yīng)用程序??梢哉f(shuō),Linux本身包含的應(yīng)用程序以及移植到Linux上的應(yīng)用程序包羅萬(wàn)象,任何一位用戶都能從有關(guān)Linux的網(wǎng)站上找到適合自己特殊需要的應(yīng)用程序及其源代碼,這樣,用戶就可以根據(jù)自己的需要下載源代碼,以便修改和擴(kuò)充操作系統(tǒng)或應(yīng)用程序的功能。這對(duì)Windows NT、Windows98、MS-DOS或OS2等商品化操作系統(tǒng)來(lái)說(shuō)是無(wú)法做到的。Linux為廣大用戶提供了一個(gè)在家里學(xué)習(xí)和使用Unix操作系統(tǒng)的機(jī)會(huì)。盡管Linux是由計(jì)算機(jī)愛好者們開發(fā)的,但是它在很多方面上是相當(dāng)穩(wěn)定的,從而為用戶學(xué)習(xí)和使用目前世界上最流行的Unix操作系統(tǒng)提供了廉價(jià)的機(jī)會(huì)?,F(xiàn)在有許多CD-ROM供應(yīng)商和軟件公司(Linux操作系統(tǒng)。Linux成為Unix系統(tǒng)在個(gè)人計(jì)算機(jī)上的一個(gè)代用品,并能用于替代那些較為昂貴的系統(tǒng)。因此,如果一個(gè)用戶在公司上班的時(shí)候在Unix系統(tǒng)上編程,或者在工作中是一位Unix的系統(tǒng)管理員,他就可以在家里安裝一套Unix的兼容系統(tǒng),即Linux系統(tǒng),在家中使用Linux就能夠完成一些工作任務(wù)。2.1系統(tǒng)語(yǔ)言2.1.2 開發(fā)語(yǔ)言2.0是一種動(dòng)態(tài)網(wǎng)站高級(jí)編程語(yǔ)言。 2.0是微軟公司的最新版本,是一種建立在公共語(yǔ)言運(yùn)行庫(kù)上的編程框架,可用于服務(wù)器上開發(fā)強(qiáng)大的web應(yīng)用程序。2.0不但執(zhí)行效率大大提高,對(duì)代碼的控制也做的很好。并且支持web controls 功能和多種語(yǔ)言。以提高安全性,以管理性和高擴(kuò)展性。 技術(shù)從1.0升級(jí)到1.1的變化不大,但是升級(jí)到2.0,卻發(fā)生了相當(dāng)大的變化,在開發(fā)過(guò)程中,微軟公司深入市場(chǎng),針對(duì)大量開發(fā)人員和軟件使用者,進(jìn)行了卓有成效的研究,并為其指定了開發(fā)代號(hào),2.0設(shè)計(jì)目標(biāo)的核心,可以用一個(gè)詞來(lái)形容簡(jiǎn)化。因?yàn)槠湓O(shè)計(jì)目的是將應(yīng)用程序代碼數(shù)量減少百分之七十以上,改變過(guò)去那種需要編寫很多重復(fù)行代碼的狀況,盡可能做到寫很少的代碼就可以完成任務(wù)。對(duì)于軟件工程師來(lái)說(shuō),2.0是web開發(fā)史上的一個(gè)重要的里程碑! 2.0的新特性: 生產(chǎn)效率,使用新增的2.0服務(wù)器控件和包含新增功能的現(xiàn)有控件,可以輕松的創(chuàng)建2.0網(wǎng)頁(yè)和應(yīng)用程序。 靈活性和可擴(kuò)展性,很多2.0功能都可以擴(kuò)展。這樣可以輕松的將自定義功能集成到應(yīng)用程序中。 性能,使用如預(yù)編譯,可配置緩存和sql緩存失效等功能。安全性,現(xiàn)在向web應(yīng)用程序添加身份驗(yàn)證和授權(quán)非常簡(jiǎn)單。完整性,新增功能和現(xiàn)用功能協(xié)同工作,可以創(chuàng)建解決實(shí)時(shí)web開發(fā)挑戰(zhàn)的端對(duì)端方案。 編輯本段.無(wú)論如何,.NET 4.0已經(jīng)在叩開新年的大門之時(shí),以高調(diào)的姿態(tài)迎來(lái)一片掌聲。廣大的技術(shù)愛好者不會(huì)等待太長(zhǎng)的時(shí)間,就能感受C#發(fā)展中的又一次變革。隨著.NET 4.0在2009年的發(fā)布,我們對(duì)于C# 4.0的關(guān)注也將與日俱增??傮w而言,C# 4.0的重頭戲主要著眼在以下幾個(gè)方面:動(dòng)態(tài)編程 并行計(jì)算 后期綁定 協(xié)變與逆變 廢話少說(shuō),接下來(lái)我們一一領(lǐng)略C# 4.0中的語(yǔ)言特性。 2.2 相關(guān)技術(shù)簡(jiǎn)介2.2.1動(dòng)態(tài)編程 眾所周知,C#是靜態(tài)強(qiáng)類型語(yǔ)言。而在很多情況下,提供“動(dòng)態(tài)”行為,是常常發(fā)生的事情,例如通過(guò)反射在運(yùn)行時(shí)訪問(wèn).NET類型、調(diào)用動(dòng)態(tài)語(yǔ)言對(duì)象、訪問(wèn)COM對(duì)象等,都無(wú)法以靜態(tài)類型來(lái)獲取。因此, C# 4.0引入的又一個(gè)全新的關(guān)鍵字dynamic,也同時(shí)引入了改善靜態(tài)類型與動(dòng)態(tài)對(duì)象的交互能力,這就是動(dòng)態(tài)查找(Dynamic Lookup)例如:就像一個(gè)object可以代表任何類型,dynamic使得類型決斷在運(yùn)行時(shí)進(jìn)行,方法調(diào)用、屬性訪問(wèn)、委托調(diào)用都可動(dòng)態(tài)分派。同時(shí),動(dòng)態(tài)特性還體現(xiàn)在構(gòu)建一個(gè)動(dòng)態(tài)對(duì)象,在C# 4.0實(shí)現(xiàn)IDynamicObject接口的類型,可以完全定義動(dòng)態(tài)操作的意義,通過(guò)將C#編譯器作為運(yùn)行時(shí)組件來(lái)完成由靜態(tài)編譯器延遲的操作,例如:dynamic d = new Foo(); .MyMethod(s,3,null); 在具體執(zhí)行過(guò)程中,C#的運(yùn)行時(shí)綁定器基于運(yùn)行時(shí)信息,通過(guò)反射獲取d的實(shí)際類型Foo,然后在Foo類型上就MyMethod方法進(jìn)行方法查找和重載解析,并執(zhí)行調(diào)用,這正是動(dòng)態(tài)調(diào)用的背后秘密:DLR。在.NET 4.0中將引入重要的底層組件DLR(Dynamic Language Runtime,動(dòng)態(tài)語(yǔ)言運(yùn)行時(shí)),除了實(shí)現(xiàn)動(dòng)態(tài)查找的基礎(chǔ)支持,DLR也同時(shí)作為基礎(chǔ)設(shè)施為類似于這個(gè)特性非常簡(jiǎn)單,有些JavaScript的影子,我們可以統(tǒng)一使用使用var關(guān)鍵字來(lái)聲明局部變量,而不再需要指明變量的確切類型了,變量的確切類型可通過(guò)聲明變量時(shí)的初始值推斷出來(lái)。這樣一來(lái),可以大大簡(jiǎn)化我,由于變量的類型是通過(guò)變量初始值推斷而來(lái)的,所以在聲明變量的同時(shí)必需為變量指定初始值。并且,變量并不是沒有類型的,變量一旦初始化之后,類型就確定下來(lái)了,以后就只能存儲(chǔ)某種類型的值了,比如上面的stringValue的類型經(jīng)推斷為string,所以該變量就只能保存string類型的值了。2.2 系統(tǒng)采用技術(shù)簡(jiǎn)介1Visual Basic是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,不具備低級(jí)語(yǔ)言的功能,對(duì)訪問(wèn)機(jī)器硬zz件的操作不太容易實(shí)現(xiàn)。但它可以通過(guò)動(dòng)態(tài)鏈接庫(kù)技術(shù)將C/C+或匯編語(yǔ)言編寫的程序加入到Visual Basic應(yīng)用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語(yǔ)言編寫的函數(shù)。此外,通過(guò)動(dòng)態(tài)鏈接庫(kù),還可以調(diào)用Windows應(yīng)用程序接口(API)函數(shù),實(shí)現(xiàn)SDK所具有的功能。核心控制器FilterDispatcher視圖ViewJsp , Struts TagsSpertiesStruts.xmlActionModel業(yè)務(wù)邏輯RequestResponseeInterceptorsResults圖1-1 Struts 2的MVC實(shí)現(xiàn)示意圖工作流程:1. 用戶提交Request請(qǐng)求信息。2. FilterDispatcher詢問(wèn)ActionMapper是否需要調(diào)用某個(gè)Action來(lái)處理這個(gè)(HttpServlet Request)請(qǐng)求,如果ActionMapper決定需要調(diào)用某個(gè)Action,F(xiàn)ilterDispatcher則把請(qǐng)求的處理交給ActionProxy。3. ActionProxy通過(guò)Configuration Manager(struts.xml)詢問(wèn)框架的配置文件,找到需要調(diào)用的Action類。4. ActionProxy創(chuàng)建一個(gè)ActionInvocation實(shí)例,同時(shí)ActionInvocation通過(guò)代理模式調(diào)用Action。但在調(diào)用之前,ActionInvocation會(huì)根據(jù)配置加載Action相關(guān)的所有Interceptor(攔截器)。5. 一旦Action執(zhí)行完畢,ActionInvocation負(fù)責(zé)根據(jù)struts.xml中的配置找到對(duì)應(yīng)的返回結(jié)果result。Spring 簡(jiǎn)介:Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),可以選擇是使用內(nèi)置的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過(guò)策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術(shù),例如 JavaServer Pages(JSP)技術(shù)、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的視圖,所以不僅僅限于使用 JSP 技術(shù)。Spring MVC 分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行定制。如下圖1-2是Spring的MVC實(shí)現(xiàn)示意圖,瀏覽器DispacherServletHanderServiceHandlerMappingStruts.xmlViewResolverView (JSP JSTL)ModelModelAndView8HTTP相應(yīng)2尋找處理器4業(yè)務(wù)處理5得到處理結(jié)果6得到處理結(jié)果7傳給view顯示1HTTP請(qǐng)求3調(diào)用處理器 圖1-2 Spring的MVC實(shí)現(xiàn)示意圖工作流程:1. DispatcherServlet接收到請(qǐng)求后,根據(jù)對(duì)應(yīng)配置文件中配置的處理器映射,找到對(duì)應(yīng)的處理器映射項(xiàng)(HandlerMapping),根據(jù)配置的映射規(guī)則,找到對(duì)應(yīng)的處理器(Handler)。2. 調(diào)用相應(yīng)處理器中的處理方法,處理該請(qǐng)求,處理器處理結(jié)束后會(huì)將一個(gè)ModelAndView類型的數(shù)據(jù)傳給DispatcherServlet,這其中包含了處理結(jié)果的視圖和視圖中要使用的數(shù)據(jù)。3. DispatcherServlet根據(jù)得到的ModelAndView中的視圖對(duì)象,找到一個(gè)合適的ViewResolver(視圖解析器),根據(jù)視圖解析器的配置,DispatcherServlet將視圖要顯示的數(shù)據(jù)傳給對(duì)應(yīng)的視圖,最后給瀏覽器構(gòu)造一個(gè)HTTP響應(yīng)。DispatcherServlet是整個(gè)Spring MVC的核心。它負(fù)責(zé)接收HTTP請(qǐng)求組織協(xié)調(diào)Spring MVC的各個(gè)組成部分。其主要工作有以下三項(xiàng):(1)截獲符合特定格式的URL請(qǐng)求。(2)初始化DispatcherServlet上下文對(duì)應(yīng)的WebApplicationContext,并將其與業(yè)務(wù)層、持久化層的WebApplicationContext建立關(guān)聯(lián)。(3)初始化Spring MVC的各個(gè)組成組件,并裝配到DispatcherServlet中。Hibernate技術(shù)簡(jiǎn)介:Hibernate是一個(gè)數(shù)據(jù)持久層框架,是一種實(shí)現(xiàn)對(duì)象和聯(lián)系之間映射(O/R Mapping)的工具,它對(duì)JDBC執(zhí)行 了輕量級(jí)的對(duì)象封裝,使程序員可以運(yùn)用對(duì)象編程思想來(lái)操作數(shù)據(jù)庫(kù)。它不僅提供了從Java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于運(yùn)用 JDBC和SQL來(lái)操作數(shù)據(jù)庫(kù),運(yùn)用 Hibernate能大大的提高實(shí)現(xiàn)的效率。Hibernate框架用配置文件的形式來(lái)定義Java對(duì)象和數(shù)據(jù)表之間的映射聯(lián)系,同時(shí)在更深的層面將數(shù)據(jù)表之間的聯(lián)系解釋為Java對(duì)象之間的繼承及包含等聯(lián)系。通過(guò)運(yùn)用 HQL語(yǔ)句將復(fù)雜的聯(lián)系算法用對(duì)象的方式描述,在很大程度上簡(jiǎn)化了對(duì)數(shù)據(jù)的查詢,加快了開發(fā)的效率。在Hibernate中有一個(gè)基本而直觀的API,用于對(duì)數(shù)據(jù)庫(kù)所表示的對(duì)象執(zhí)行查詢。要建立或修改這些對(duì)象,只需在程序中與它們執(zhí)行 交互,然后告訴Hibernate保存即可。這樣,大量封裝持久化操作的業(yè)務(wù)邏輯不再須要編寫煩瑣的JDBC語(yǔ)句,從而使數(shù)據(jù)持久層得到了極大的簡(jiǎn)化Hibernate 是一種新的 ORM 映射工具,它不僅提供了從 Java 類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于使用 JDBC 和 SQL 來(lái)手工操作數(shù)據(jù)庫(kù),使用 Hibernate,可以大大減少操作數(shù)據(jù)庫(kù)的工作量。Hibernate 可以和多種 Web 服務(wù)器或者應(yīng)用服務(wù)器良好集成,如今已經(jīng)支持幾乎所有的流行的數(shù)據(jù)庫(kù)服務(wù)器其體系結(jié)構(gòu)如圖1-3所示MVC設(shè)計(jì)模式:模式視圖控制器(ModelViewController,MVC)是一種先進(jìn)的設(shè)計(jì)模式。是Trygve Reenskaug教授于1978年最早開發(fā)的一個(gè)設(shè)計(jì)模版或基本結(jié)構(gòu),其目的是以會(huì)話的形式提供方便的GUI支持。三層結(jié)構(gòu)的特點(diǎn)是:所以下層向上層提供調(diào)用的接口,具體實(shí)現(xiàn)細(xì)節(jié)對(duì)上層透明,層與層之間存在自上而下的依賴關(guān)系,即上層會(huì)訪問(wèn)下層的API層,但下層不依賴于上層。視圖(View)代表用戶交互界面,對(duì)于Web應(yīng)用來(lái)說(shuō),可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請(qǐng)求,而不包括在視圖上的業(yè)務(wù)流程的處理。模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過(guò)程對(duì)其它層來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果??刂?Controller)可以理解為從用戶接收請(qǐng)求, 將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。其模型視圖如圖1-4所示。模型數(shù)據(jù)視圖控制器請(qǐng)求jsp顯示數(shù)據(jù)請(qǐng)求處理數(shù)據(jù)連接讀取存儲(chǔ)數(shù)據(jù)JSP頁(yè)面JSP頁(yè)面ACTIONSERVLET數(shù)據(jù)庫(kù)文件JAVABEANNNJAVABEANNN 圖1-4 MVC模型MVC是一種通過(guò)3個(gè)不同部分構(gòu)造一個(gè)軟件或組件的理想辦法:1. 模式(Model)用于存儲(chǔ)數(shù)據(jù)的對(duì)象 2. 視圖(View)為模式提供數(shù)據(jù)顯示的對(duì)象。 3. 控制器(Controller)負(fù)責(zé)具體的業(yè)務(wù)邏輯操作,即控制器根據(jù)視圖提出的要求對(duì)數(shù)據(jù)做出處理,并將有關(guān)結(jié)果存儲(chǔ)到模型中,同時(shí)負(fù)責(zé)讓模型和視圖進(jìn)行必要的交互,當(dāng)模型中的數(shù)據(jù)變化時(shí),讓視圖更新顯示。 從面向?qū)ο蟮慕嵌瓤?,MVC結(jié)構(gòu)可以使程序更具有對(duì)象化特性,也更容易維護(hù)。在設(shè)計(jì)程序時(shí),可以將某個(gè)對(duì)象看做“模型”,然后為“模型”提供恰當(dāng)?shù)娘@示組件,即“視圖”。在MVC模式中,“視圖”、“模型”和“控制器”之間是松散耦合結(jié)構(gòu),便于系統(tǒng)的維護(hù)和擴(kuò)展。2.2.2系統(tǒng)采用技術(shù)介紹本系統(tǒng)采用了 .net、CMM技術(shù),采用MVC架構(gòu)。zCMM與 PSP 在20世紀(jì) 80年代后期到90年代早期,SEI開發(fā)了能力成熟度模型(CMM),為軟件開發(fā)總組織級(jí)的最佳實(shí)踐。SEI特別會(huì)員 Watts Humphrey決定將 CMM的基本原理應(yīng)用于單個(gè)開發(fā)的軟件開發(fā)實(shí)踐中。個(gè)人軟件過(guò)程(PSP)就是他努力的成果,為單個(gè)軟件開發(fā)人員設(shè)計(jì)的五級(jí)過(guò)程。 CMM與 TSP 不久大家就發(fā)現(xiàn),雖然使用 PSP可以取得優(yōu)異的結(jié)果,但是如果周圍的環(huán)境不能鼓勵(lì)并且要守 PSP實(shí)踐,這些必要的規(guī)范性是幾乎不可能得到維持的。所以漢弗萊為大多數(shù)組織中最小作單位項(xiàng)目組,開發(fā)了團(tuán)隊(duì)軟件過(guò)程(TSP),TSP是為項(xiàng)目組設(shè)計(jì)的CMM5級(jí)過(guò)程。份SEI技術(shù)報(bào)告中,記錄了使用TSP在滿足成本和進(jìn)度估算的同時(shí)達(dá)到一流質(zhì)量水平的最新CMM的演變 同時(shí),CMM的成功也引發(fā)了相似模型的開發(fā)以覆蓋系統(tǒng)工程(SE-CMM)、集成產(chǎn)品開發(fā)CMM)、軟件采購(gòu)(SA-CMM)以及人力資源(P-CMM)。為了緩解模型數(shù)量的過(guò)快增長(zhǎng),使用從未正式發(fā)布的CMM第二版、系統(tǒng)工程 CMM和IPD-CMM開發(fā)了能力成熟度模型集成(CMMI), 第3章系統(tǒng)分析與設(shè)計(jì)3.1 用戶需求的獲取 接到畢設(shè)任務(wù)書后,通過(guò)在網(wǎng)上查閱了解了一些鐘表銷售相關(guān)的平臺(tái),進(jìn)行需求提煉總結(jié),形成了用戶需求分析的相關(guān)文檔,也通過(guò)在圖書館查閱相關(guān)研究資料完善了需求分析。3.2 系統(tǒng)用戶分析。3.3 系統(tǒng)功能分析隨著軟件工程知識(shí)的普及,軟件工程師都知道,要開發(fā)高質(zhì)量的軟件,必須改進(jìn)軟件生產(chǎn)的過(guò)程。目前,業(yè)界公認(rèn)由CMU/SEI開發(fā)的軟件能力成熟度模型SW-CMM是當(dāng)前最好的軟件過(guò)程,并且CMM已經(jīng)成為事實(shí)上的軟件過(guò)程工業(yè)標(biāo)準(zhǔn)。但是,CMM雖然提供了一個(gè)有力的軟件過(guò)程改進(jìn)框架,卻只告訴我們應(yīng)該做什么,而沒有告訴我們應(yīng)該怎樣做,并未提供有關(guān)實(shí)現(xiàn)關(guān)鍵過(guò)程域所需要的具體知識(shí)和技能。為了彌補(bǔ)這個(gè)欠缺,Humphrey又主持開發(fā)了個(gè)體軟件過(guò)程(Personal Software Process,PSP)。 在CMM1.1版本的18個(gè)關(guān)鍵過(guò)程域中有12個(gè)與PSP有關(guān),據(jù)統(tǒng)計(jì),軟件項(xiàng)目 開發(fā)成本的70%取決于軟件開發(fā)人員個(gè)人的技能、經(jīng)驗(yàn)和工作習(xí)慣。因此,一個(gè)單位的軟件開發(fā)人員如能接受PSP培訓(xùn),對(duì)該單位軟件能力成熟度的升級(jí)是一個(gè)有力的保證。CMM側(cè)重于軟件企業(yè)中有關(guān)軟件過(guò)程的宏觀管理,面向軟件開發(fā)單位,PSP則側(cè)重于企業(yè)中有關(guān)軟件過(guò)程的微觀優(yōu)化,面向軟件開發(fā)人員。二者互相支持,互相補(bǔ)充,缺一不可。按照PSP規(guī)程,改進(jìn)軟件過(guò)程的步驟首先需要明確質(zhì)量目標(biāo),也就是軟件將要在功能和性能上滿足的要求和用戶潛在的需求。接著就是度量產(chǎn)品質(zhì)量,有了目標(biāo)還不行,目標(biāo)只是一個(gè)原則性的東西,還不便于實(shí)際操作和判斷,因此,必須對(duì)目標(biāo)進(jìn)行分解和度量,使軟件質(zhì)量能夠測(cè)量。然后就是理解當(dāng)前過(guò)程,查找問(wèn)題,并對(duì)過(guò)程進(jìn)行調(diào)整。最后應(yīng)用調(diào)整后的過(guò)程,度量實(shí)踐結(jié)果,將結(jié)果與目標(biāo)做比較,找出差距,分析原因,對(duì)軟件過(guò)程進(jìn)行持續(xù)改進(jìn)。就象CMM為軟件企業(yè)的能力提供一個(gè)階梯式的進(jìn)化框架一樣,PSP為個(gè)體的能力也提供了一個(gè)階梯式的進(jìn)化框架,以循序漸進(jìn)的方法介紹過(guò)程的概念,每一級(jí)別都包含了更低一級(jí)別中的所有元素,并增加了新的元素。這個(gè)進(jìn)化框架是學(xué)習(xí)PSP過(guò)程基本概念的好方法,它賦予軟件人員度量和分析工具使其清楚地認(rèn)識(shí)到自己的表現(xiàn)和潛力,從而可以提高自己的技3.4數(shù)據(jù)庫(kù)分析與設(shè)計(jì) 根據(jù)對(duì)普通注冊(cè)用戶和系統(tǒng)管理員用戶的分析,系統(tǒng)可以涉及到5大實(shí)體,分別是社區(qū)信息、用戶信息、物品信息、留言信息以及評(píng)價(jià)信息。 社區(qū)信息是指用戶所在社區(qū)的具體信息,其應(yīng)包含的屬性有社區(qū)標(biāo)識(shí)、社區(qū)名稱、社區(qū)地址以及社區(qū)介紹等。這樣用戶在注冊(cè)的時(shí)候可以選擇查看社區(qū)信息,以便了解自己應(yīng)該注冊(cè)在哪個(gè)社區(qū)從而更快捷方便的進(jìn)行舊貨交換活動(dòng)。其他用戶在搜索物品時(shí)也可以查看發(fā)布人所在的社區(qū)信息,以便決定自己要不要拿自己的東西去進(jìn)行交換或者給對(duì)方留言。3.5 系統(tǒng)詳細(xì)設(shè)計(jì) 主要介紹了鐘表銷售管理系統(tǒng)的原型設(shè)計(jì)及重要模塊的詳細(xì)設(shè)計(jì)實(shí)現(xiàn)過(guò)程,用一系列的時(shí)序圖輔助文字圖表等進(jìn)行說(shuō)明。3.5.1 系統(tǒng)頁(yè)面設(shè)計(jì) 通過(guò)對(duì)舊貨交換信息平臺(tái)系統(tǒng)的分析,本系統(tǒng)的主要使用用戶有兩種,一是注冊(cè)的普通用戶,是系統(tǒng)主要的服務(wù)對(duì)象,二是系統(tǒng)管理員,負(fù)責(zé)系統(tǒng)日常信息的維護(hù),因而系統(tǒng)原型設(shè)計(jì)可根據(jù)兩種用戶角色劃分為不同功能的模塊設(shè)計(jì),分別是公共模塊、普通用戶模塊和系統(tǒng)管理員模塊。1. 公共模塊設(shè)計(jì)公共模塊包含了注冊(cè)登錄、查看修改個(gè)人信息、修改密碼、查看日歷,物品檢索,友情鏈接、建議投訴等子功能模塊。公共模塊作為系統(tǒng)的前臺(tái)頁(yè)面顯示,需要靈活的易用性和美觀性,當(dāng)用戶登錄系統(tǒng)后在左側(cè)的導(dǎo)航欄中也會(huì)顯示這些信息,和其他系統(tǒng)類似,在需要增加一些鏈接的地方也加入了公共模塊的很多信息。公共模塊功能層次圖設(shè)計(jì)如下圖3-10所示,第4章 系統(tǒng)實(shí)現(xiàn)與測(cè)試4.1 重要模塊說(shuō)明1. 普通用戶發(fā)布物品流程圖圖下圖4-1所示開始 實(shí)例化 GoodsDao 實(shí)例化 SysUserDao 初始化實(shí)體類Goods 根據(jù)登錄id標(biāo)識(shí)查詢SysUsergoods對(duì)象返回查詢到的 goods對(duì)象中初始化 初始化 UserService調(diào)用save()釋放查詢對(duì)象跳轉(zhuǎn)到發(fā)布接受頁(yè)面輸入?yún)?shù) 圖4-1 用戶發(fā)布物品流程圖 普通用戶點(diǎn)擊發(fā)布物品鏈接即可進(jìn)入發(fā)布物品的頁(yè)面,頁(yè)面有相關(guān)輸入框和下拉框來(lái)提示用戶進(jìn)行操作。輸入用戶參數(shù)后將通過(guò)http協(xié)議傳遞給GoodsManageAcion中的addGoods()方法,首先根據(jù)登錄id通過(guò)SysUserDao查詢用戶信息,檢查在數(shù)據(jù)庫(kù)中是否存在,若查詢成功,返回該user對(duì)象。并封裝成user屬性,以便將該對(duì)象輸入到Goods對(duì)象中。addGoods()方法會(huì)通過(guò)GoodsService類調(diào)用GoodsDao中的save()方法,即將該記錄添加到數(shù)據(jù)庫(kù)表中進(jìn)行保存,其他用戶就可以對(duì)該物品進(jìn)行搜索或查看。 物品配價(jià)功能分為兩種,一種是全社區(qū)配價(jià),一種是本社區(qū)配價(jià),實(shí)現(xiàn)方式是先以價(jià)格和確定的配價(jià)范圍調(diào)用GoodsDao的findBySamePrice()方法查找數(shù)據(jù)庫(kù)中價(jià)格類似的物品,并返回一個(gè)Goods類型的list對(duì)象,得到該list對(duì)象后,才根據(jù)用戶的選擇過(guò)濾出物品所屬用戶與登錄用戶不在一個(gè)社區(qū)和過(guò)濾出自己發(fā)布的物品作為本社區(qū)配價(jià)結(jié)果,而全社區(qū)配價(jià)結(jié)果是僅僅將自己發(fā)布的物品過(guò)濾出去,再通過(guò)實(shí)例化GoodsService將該值傳遞給GoodsManageAction類,該類將list對(duì)象封裝成http協(xié)議傳遞到前臺(tái)頁(yè)面進(jìn)行顯示。結(jié)論本次畢業(yè)設(shè)計(jì)的完成,使我在專業(yè)技能方面得到了大幅度的提升,對(duì)Eclipse平臺(tái)下利用SSH框架技術(shù)進(jìn)行系統(tǒng)開發(fā)有了更進(jìn)一步的理解。對(duì)MVC架構(gòu)的運(yùn)行原理也有了更深刻的認(rèn)識(shí)。系統(tǒng)采用SSH框架設(shè)計(jì),典型的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ù)交互。表現(xiàn)層是傳統(tǒng)的JSP技術(shù),其優(yōu)點(diǎn)在于廣泛的應(yīng)用和穩(wěn)定的表現(xiàn)。中間層采用的是流行的Spring+Hibernate,為了將控制層與業(yè)務(wù)邏輯層分離,又細(xì)分為以下幾種。 Web層,就是MVC模式里面的“C”(controller),負(fù)責(zé)控制業(yè)務(wù)邏輯層與表現(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ù)。 采用Hibernate作為持久層技術(shù)的最大的好處在于:可以完全以面向?qū)ο蟮姆绞竭M(jìn)行系統(tǒng)分析、系統(tǒng)設(shè)計(jì)。DAO模式需要為每個(gè)DAO組件編寫DAO接口,同時(shí)至少提供一個(gè)實(shí)現(xiàn)類,根據(jù)不同需要,可能有多個(gè)實(shí)現(xiàn)類。用Spring容器代替DAO工廠 。通常情況下,引入接口就不可避免需要引入工廠來(lái)負(fù)責(zé)DAO組件的生成。Spring實(shí)現(xiàn)了兩種基本模式:?jiǎn)螒B(tài)模式和工廠模式。而使用Spring可以完全避免使用工廠模式,因?yàn)镾pring就是個(gè)功能非常強(qiáng)大的工廠。因此,完全可以讓Spring充當(dāng)DAO工廠。 由Spring充當(dāng)DAO工廠時(shí),無(wú)須程序員自己實(shí)現(xiàn)工廠模式,只需要將DAO組件配置在Spring容器中,由ApplicationContext負(fù)責(zé)管理DAO組件的創(chuàng)建即可。借助于Spring提供的依賴注入,其他組件甚至不用訪問(wèn)工廠,一樣可以直接使用DAO實(shí)例。 Struts跟Tomcat、Turbine等諸多Apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn)。使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。 除此之外,Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib和頁(yè)面導(dǎo)航。Taglib是Struts的標(biāo)記庫(kù),靈活動(dòng)用,能大大提高開發(fā)效率。MVC架構(gòu)中的模型是自包含的,并且與控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如果想把數(shù)據(jù)庫(kù)從MySQL移植到Sqlserver,或者改變基于RDBMS數(shù)據(jù)源到LDAP,只需改變模型即可。一旦正確的實(shí)現(xiàn)了模型,不管你的數(shù)據(jù)來(lái)自數(shù)據(jù)庫(kù)或是LDAP服務(wù)器,視圖將會(huì)正確的顯示它們。由于運(yùn)用MVC的應(yīng)用程序的三個(gè)部件是相互對(duì)立,改變其中一個(gè)不會(huì)影響其它兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的松偶合的構(gòu)件。本次畢業(yè)設(shè)計(jì)是自己第一次獨(dú)立承擔(dān)一個(gè)系統(tǒng)的開發(fā)任務(wù),從前期的需求分析到數(shù)據(jù)庫(kù)設(shè)計(jì)再到編碼實(shí)現(xiàn),都是自己全程參與和設(shè)計(jì),這對(duì)自己的挑戰(zhàn)還是很大的。從設(shè)計(jì)到實(shí)現(xiàn)的過(guò)程,使我認(rèn)識(shí)到前期

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論