【文章內(nèi)容簡(jiǎn)介】
pring 并不想取代已有的框架,而與它們無(wú)縫地整合。 Spring 使用基本的 JavaBean 來(lái)完成以前只可能由 EJB 完成的事情,其核心技術(shù)是控制平頂山工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 第 6 頁(yè) 反轉(zhuǎn) IOC 與 AOP 代理機(jī)制。然而, Spring 的用途不僅限于 服務(wù)器端的開(kāi)發(fā),從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何 Java 應(yīng)用都可以從 Spring 中受益。 Hibernate 在當(dāng)今多層體系結(jié)構(gòu)的軟件開(kāi)發(fā)中,使用 JDBC 很難將持久層進(jìn)行分離,負(fù)責(zé)業(yè)務(wù)邏輯代碼編寫(xiě)的程序員必須密切關(guān)注數(shù)據(jù)庫(kù)各表的結(jié)構(gòu)關(guān)系,以確保其 SQL 語(yǔ)句工作的正常。如果引入 Hibernate 這樣的持久層中間件的話,業(yè)務(wù)邏輯層的開(kāi)發(fā)人員整天面對(duì)的就是一個(gè)又一個(gè)的對(duì)象而不必關(guān)心數(shù)據(jù)表,既有利于團(tuán)隊(duì)分工協(xié)作,又提高了軟件產(chǎn)品的可移植性。 Hibernate 可以應(yīng)用在任何使用 JDBC 的場(chǎng)合 ,既可以在 Java Application 中使用,也可以在 Servlet/JSP 的 Web 應(yīng)用中使用。 整合 Struts 2 標(biāo)簽庫(kù)處理視圖層, Struts 2 的核心控制器與業(yè)務(wù)控制充當(dāng)控制層, Hibernate 與各業(yè)務(wù)邏輯組件處理業(yè)務(wù)層事務(wù),最后由 Spring 統(tǒng)管 Bean 資源,對(duì)整個(gè)應(yīng)用的 JavaBean 實(shí)例資源進(jìn)行統(tǒng)一管理與調(diào)度。這樣使三個(gè)開(kāi)源框架有機(jī)地整合起來(lái)并更好地發(fā)揮它們的優(yōu)勢(shì),實(shí)現(xiàn)了系統(tǒng)多層開(kāi)發(fā)的低耦合,提高了 J2 EE 應(yīng)用開(kāi)發(fā)的效率。 模型 視圖 控制器 (modelviewcontroller, MVC) 是 XeroxPARC 于 20 世紀(jì) 80 年代為編程語(yǔ)言 Smalltalk80 發(fā)明的一種軟件設(shè)計(jì)模式,廣泛應(yīng)用于交互式應(yīng)用程序,如客戶機(jī) /服務(wù)器、分布和 Inter 架構(gòu)等體系結(jié)構(gòu)。模型表示數(shù)據(jù)或信息,以及數(shù)據(jù)存取的業(yè)務(wù)邏輯;視圖用于顯示模型的內(nèi)容;控制器負(fù)責(zé)定義應(yīng)用程序的行為。 MVC 將表示邏輯、業(yè)務(wù)邏輯和數(shù)據(jù)分開(kāi),以便最小化對(duì)象之間的耦合度,它基于以下 3 方面的考慮: (1)劃分責(zé)任可以減少代碼重復(fù)度; (2)模型及視圖變化不會(huì)太多影響控制; (3)應(yīng)用程序維 護(hù)簡(jiǎn)單。 MVC 設(shè)計(jì)模式圖如圖21 所示。 ( 控 制 器 )接 受 用 戶 請(qǐng) 求調(diào) 用 模 型 響 應(yīng) 用 戶 請(qǐng) 求選 擇 視 圖 顯 示 響 應(yīng) 結(jié) 果 ( 視 圖 )顯 示 模 型 狀 態(tài)接 受 數(shù) 據(jù) 更 新 請(qǐng) 求發(fā) 送 用 戶 輸 入 數(shù) 據(jù) 傳 輸 給控 制 器允 許 控 制 器 選 擇 視 圖 ( 模 型 )封 裝 應(yīng) 用 程 序 狀 態(tài)響 應(yīng) 狀 態(tài) 查 詢處 理 業(yè) 務(wù) 流 程通 知 視 圖 業(yè) 務(wù) 狀 態(tài) 更 新通 知 數(shù) 據(jù) 更 新?tīng)?態(tài) 查 詢選 擇 視 圖業(yè) 務(wù) 處 理用 戶 請(qǐng) 求事 件方 法 調(diào) 用 圖 21 MVC 設(shè)計(jì)模式圖 平頂山工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 第 7 頁(yè) SSH 體系結(jié)構(gòu) 一個(gè)典型的 Web 應(yīng)用系統(tǒng),按職責(zé)一般分為三層,即表示層,業(yè)務(wù)邏輯層和數(shù)據(jù)持久層,每一層次都有其獨(dú)特的職責(zé),不能把各自的功能與其他層次相混合. 采用 Struts、 Spring 和 Hibernate 框架技術(shù)可以分別實(shí)現(xiàn)這三層的整合處理。即利用 Struts 框架作為系統(tǒng)整體基礎(chǔ)架構(gòu),負(fù)責(zé) MVC 的分離,在 Struts 架構(gòu)的 Model 部分 ,利用 Spring 支持業(yè)務(wù)邏輯,用 Hibernate 支持?jǐn)?shù)據(jù)持久層,具體整合架構(gòu)如圖 22 所示: 瀏覽器S t r u t s A c t i o nJ S P , X M L 等表 示 層S t r u t s M V CA c t i o n S e r v l e t業(yè) 務(wù) 邏 輯 層S p r i n g 事 務(wù) 處 理H i b e r n a t eS e s s i o n 管 理業(yè) 務(wù) 服 務(wù) 類(lèi)數(shù)據(jù)庫(kù)S e r v i c s D A O其 他 查 詢 語(yǔ)言 支 持 和 其他 H i b e r n a t e服 務(wù)數(shù) 據(jù) 持 久 層H i b e r n a t e數(shù) 據(jù) 源 / 連 接 池域 模 型 業(yè) 務(wù) 對(duì) 象 ( V a l u e O b j e c t , V a l u e O b j e c t P e r s i s t e n c e O b j e c t ) 圖 22 SSH 框架整合架構(gòu)示意圖 其中, Struts 用于表示層,直接面向用戶,響應(yīng)用戶的請(qǐng)求,為顯示提供一個(gè)模型和一個(gè)控制器,并委派調(diào)用業(yè)務(wù)邏輯和其他上層處理等功能 。 利用 Spring 在事務(wù)管理和依賴(lài)注入方面的獨(dú)特能力,實(shí)現(xiàn)處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗(yàn),以及提供與其他層進(jìn)行相互作用的接口等 。 Hibernate 是 ORM 的實(shí)現(xiàn),利用它建 立 Java 對(duì)象模型的持久化對(duì)象,進(jìn)而以面向?qū)ο蟮姆绞絹?lái)方便地操作關(guān)系數(shù)據(jù)庫(kù)。這樣 Struts、 Spring 和 Hibernate 就能夠很好地封裝各個(gè)層次的程序,如在處理前臺(tái)表示層時(shí)就不會(huì)把事務(wù)邏輯和持久化邏輯摻雜進(jìn)來(lái),從而最大限度地實(shí)現(xiàn)各層的高內(nèi)聚低耦合目標(biāo)。 SSH 整合的業(yè)務(wù)配置流程介紹 SSH 現(xiàn)在普遍應(yīng)用于各個(gè)領(lǐng)域,其整合的基本業(yè)務(wù)配置流程如下 。 在表示層中 ,通過(guò) Web頁(yè)面實(shí)現(xiàn)用戶和系統(tǒng)之間的信息交互 ,Web頁(yè)面負(fù)責(zé)傳送用戶的請(qǐng)求以及接收系統(tǒng)的響應(yīng)信息。 Struts 根據(jù) 配置文件將 ActionServlet 接收到的請(qǐng)求 (Request)分發(fā)給相應(yīng)的 Action 來(lái)處理。在業(yè)務(wù)平頂山工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 第 8 頁(yè) 層中 ,管理服務(wù)組件的 Spring IoC 容器負(fù)責(zé)向 Action 提供其指定的業(yè)務(wù)模型組件和該組件的協(xié)作 DAO 類(lèi)共同完成業(yè)務(wù)邏輯 ,并提供事務(wù)處理、數(shù)據(jù)緩沖等功能以保證數(shù)據(jù)的完整性 ,并提升系統(tǒng)性能。而在持久層中 ,則利用 Hibernate 的對(duì)象映射機(jī)制同數(shù)據(jù)庫(kù)交互 ,處理 DAO 實(shí)現(xiàn)類(lèi)的數(shù)據(jù)處理功能 ,并返回相應(yīng)的處理結(jié)果。具體業(yè)務(wù)配置流程處理如圖 23 所示。 圖 23 SSH 框架業(yè)務(wù)配置流程處理示 意圖 采用 SSH 開(kāi)發(fā)模型,不僅實(shí)現(xiàn)了視圖、控制器與模型的徹底分離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離。這樣無(wú)論前端如何變化,模型層都不需要做很大的改動(dòng),這樣可以大大提高了系統(tǒng)的可復(fù)用性,而且由于不同層之間耦合度小,有利于團(tuán)隊(duì)成員協(xié)同開(kāi)發(fā),大大提高了開(kāi)發(fā)效率。 Ajax技術(shù)概述 Ajax(Asynchronous JavaScript and XML)是指基于 XML 的異步 JavaScript技術(shù),是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的 Web 應(yīng)用程序的技術(shù)。傳統(tǒng)的網(wǎng)頁(yè)如果需要更新內(nèi)容,必需重載整個(gè)網(wǎng)頁(yè) 面,而 AJAX 通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。在頁(yè)面內(nèi)與服務(wù)器通信,給用戶更好的體驗(yàn);同時(shí),使用異步方式與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力;它也可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來(lái)處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),節(jié)約空間和寬帶租用成本。圖 1是傳統(tǒng)的 Web 應(yīng)用模型和加入 Ajax 后的 Web 應(yīng)用模型的對(duì)比。 通過(guò)這兩個(gè)圖的比較,我們可以更清楚的了解到加入 Ajax 技術(shù)后, 給傳統(tǒng)的Web 應(yīng)用程序開(kāi)發(fā)所帶來(lái)的變化。 平頂山工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 第 9 頁(yè) 第 3 章 系統(tǒng)分析 可行性分析 可行性分析( Feasibility Analysis)也稱(chēng)為可行性研究,是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)新系統(tǒng)的開(kāi)發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開(kāi)發(fā)從技術(shù)、經(jīng)濟(jì)、社會(huì)的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開(kāi)發(fā)成功。可行性 研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個(gè)方面的內(nèi)容: 技術(shù)上的要求:在技術(shù)上要求比較的專(zhuān)業(yè),需要計(jì)算機(jī)專(zhuān)業(yè)的知識(shí)同時(shí)要求了解售樓的過(guò)程和售樓 的專(zhuān)業(yè)知識(shí) 信息時(shí)代的到來(lái),人們對(duì)信息處理的需求越來(lái)越高,從而使管理信息系統(tǒng)開(kāi)發(fā)技術(shù)得到了充分的發(fā)展與完善,使得開(kāi)發(fā)本系統(tǒng)在技術(shù)可行性成為可能。本系統(tǒng)使用 MyEclipse結(jié)合 MySQL數(shù)據(jù)庫(kù)進(jìn)行開(kāi)發(fā),技術(shù)要求不高,開(kāi)發(fā)人員容易上手。 目前,管理信息系統(tǒng)已經(jīng)應(yīng)用到了各個(gè)不同管理領(lǐng)域,有許多成功的經(jīng)驗(yàn)可以讓我們?cè)谠O(shè)計(jì)和實(shí)施的過(guò)程中得以借鑒,極大地降低了開(kāi)發(fā)的風(fēng)險(xiǎn)。所以,建立一個(gè)房屋銷(xiāo)售管理信息系統(tǒng)在技術(shù)上是可行的。 經(jīng)濟(jì)上的要求:對(duì)于售樓公司來(lái)說(shuō)高效的售樓系統(tǒng)本身就是一種優(yōu)勢(shì)提高售樓的銷(xiāo)量。關(guān)于售樓公司節(jié) 省成本。 目前計(jì)算機(jī)廣泛應(yīng)用于各個(gè)領(lǐng)域,尤其是在數(shù)據(jù)處理方面表現(xiàn)出了巨大的優(yōu)勢(shì),甚至每個(gè)公司、每個(gè)用戶都有計(jì)算機(jī),利用計(jì)算機(jī)將各種復(fù)雜的數(shù)據(jù),都制作成數(shù)據(jù)庫(kù),交由計(jì)算機(jī)來(lái)管理。利用計(jì)算機(jī)對(duì)數(shù)據(jù)進(jìn)行管理,會(huì)帶來(lái)很大的好處,這使得創(chuàng)建一個(gè)好的信息管理系統(tǒng)成為一個(gè)必要的工作。但是,建立房屋銷(xiāo)售管理信息系統(tǒng)在經(jīng)濟(jì)上是否可行呢 ? 一方面,隨著計(jì)算機(jī)技術(shù)的發(fā)展,硬件設(shè)備價(jià)格不斷下降,建立房屋銷(xiāo)售管理系統(tǒng)的費(fèi)用并不是十分昂貴的。通常一個(gè)小型的房屋銷(xiāo)售管理信息系統(tǒng)只需要幾臺(tái)普通計(jì)算機(jī),以及少量的輔助設(shè)施,即使加上開(kāi)發(fā)時(shí)產(chǎn)生 的各種費(fèi)用也不會(huì)是很高的,一般情況下完全可以承受。另一方面,建立房屋銷(xiāo)售管理系統(tǒng)以后,由于企業(yè)的日常業(yè)務(wù)比較固定,后期的運(yùn)行維護(hù)費(fèi)用將會(huì)是比較低的。而且由于計(jì)算機(jī)的使用,降低了管理人員的勞動(dòng)強(qiáng)度,提高勞動(dòng)效率,甚至可能節(jié)約人員成本,減少由于手工管理的失誤帶來(lái)的損失。所以,建立一個(gè)房屋銷(xiāo)售管理信息系統(tǒng)會(huì)對(duì)管理過(guò)程帶來(lái)較好的影響,所需經(jīng)濟(jì)投入也不會(huì)太大,在經(jīng)濟(jì)方面完全平頂山工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 第 10 頁(yè) 是可行的。 社會(huì)上要求:防止客源流失、 準(zhǔn)確地銷(xiāo)售控制 、全面客戶服務(wù) 、有效業(yè)績(jī)考核 、準(zhǔn)確的往來(lái)帳務(wù)、 明確廣告投放 、及時(shí)準(zhǔn)確的數(shù)據(jù) 反饋 、 靈活強(qiáng)大的統(tǒng)計(jì)分析 。 界面設(shè)計(jì)時(shí)充分考慮管理人員的習(xí)慣,使得操作簡(jiǎn)單,數(shù)據(jù)錄入迅速、規(guī)范、可靠,統(tǒng)計(jì)準(zhǔn)確,制表靈活,適應(yīng)能力強(qiáng),容易擴(kuò)充。 銷(xiāo)售上要求:開(kāi)發(fā)潛在的消費(fèi)群體通過(guò), CRM 等新的系統(tǒng)提高潛在消費(fèi)者的開(kāi)發(fā)及對(duì)現(xiàn)有的消費(fèi)者的跟蹤調(diào)查。 管理上要求:除了以上各項(xiàng)客觀要求,主觀上還需要操作者即管理人員的利用與支持。 (1)管理人員的支持 通過(guò)上述的分析結(jié)果可知,建立這樣一個(gè)系統(tǒng)會(huì)帶來(lái)很多好處且花費(fèi)不大,這必然會(huì)得到?jīng)Q策者的支持,而且系統(tǒng)建立的風(fēng)險(xiǎn)很低,只要做好系統(tǒng)開(kāi)發(fā)階段的工作,基本不會(huì) 失敗。 (2)一般工作人員的支持 房屋銷(xiāo)售管理信息系統(tǒng)建立后帶來(lái)的勞動(dòng)效率的提高以及勞動(dòng)強(qiáng)度的降低,必然會(huì)受到一般操作管理人員的歡迎。 (3)對(duì)一般操作人員的技術(shù)要求低 一般操作人員只需要完成一些非常簡(jiǎn)單的錄入、修改處理?,F(xiàn)有的操作人員只需要極短的時(shí)間就可以熟練使用系統(tǒng),這樣一來(lái),系統(tǒng)的轉(zhuǎn)換工作就會(huì)非常順利。 綜上所述,房屋銷(xiāo)售管理系統(tǒng)無(wú)論在經(jīng)濟(jì)、技術(shù)、管理等方面都是可行的,可以進(jìn)行下一步的開(kāi)發(fā)工作。 需求分析 系統(tǒng)分析是應(yīng)用系統(tǒng)思想和方法,把復(fù)雜的對(duì)象分解成簡(jiǎn)單的組成部分,找出這些部分的基本屬性和彼 此的關(guān)系。 通常房地產(chǎn)開(kāi)發(fā)公司都會(huì)使用一套房地產(chǎn)信息管理系統(tǒng)來(lái)規(guī)范化公司的各種事務(wù),如樓房銷(xiāo)售信息管理,樓房信息管理,客戶信息管理等。 系統(tǒng)角色設(shè)置 系統(tǒng)共有下列固有角色:管理員、客戶,管理員比客戶有更高的權(quán)限。根據(jù)平頂山工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 第 11 頁(yè) 實(shí)際需要包含以下幾個(gè)方面。 管理員( Administrator):負(fù)責(zé)公告、客戶信息、員工信息、部門(mén)、留言等的管理。 客戶( Customer):每個(gè)客戶在權(quán)限之內(nèi)訪問(wèn)和使用系統(tǒng)。 本系統(tǒng)采用面向?qū)ο蠓椒▽?duì)系統(tǒng)用戶的需求進(jìn)行分析,采用 UML統(tǒng)一建模語(yǔ)言表示。 經(jīng)過(guò)需求采集和分析,確定 房 地產(chǎn)信息管理 系統(tǒng)中管理員作為主要活動(dòng)者的用例 為 : 個(gè)人首頁(yè) 該模塊包括對(duì)個(gè)人資料的查看和修改以及對(duì)登陸密碼的修改。 公告 管理 該模塊包括對(duì)公告信息的查看、添加、修改、刪除與恢復(fù)已刪。 房屋信息 管理 該模塊包括添加 房屋信息 、修改 房屋信息 、刪除 房屋信息 、查看 房屋信息 。 客戶信息 管理 該模塊包括添加客戶信息、修改客戶信息、刪除客戶信息、查看客戶信息等。 員工 管理 該模塊包括添加員工、修改員工、刪除員工、查看員工及恢復(fù)已刪員工。 管理員 管理 該模塊包括添加管理員、修改管理員、刪除管理員、查 看管理員。 留言 管理 該模塊包括消息的查看與消息的刪除。 審批管理 該模塊包括房屋信息的修改。 銷(xiāo)售信息管理 該模塊包括添加 銷(xiāo)售信息 、修改 銷(xiāo)售信息 、刪除 銷(xiāo)售信息 、查看 銷(xiāo)售信息 。 而以 員工 為主要活動(dòng)者的用例有