freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

武漢大學(xué)工程碩士專業(yè)學(xué)位論文模板(留存版)

  

【正文】 使 Spring 框架管理的任何對(duì)象支持 AOP。使用本地?cái)?shù)據(jù)庫(kù)的SQL查詢,這種查詢Hibernate只關(guān)心把JDBC 結(jié)果集映射到持久對(duì)象圖。Hibernate提供了以下幾種檢索對(duì)象的方式:①導(dǎo)航對(duì)象圖檢索方式。它是線程安全的,這意味著它的同一個(gè)實(shí)例可以被應(yīng)用的多個(gè)線程共享。映射語(yǔ)言是以Java為中心的,意味著映射是按照持久化類的定義來(lái)創(chuàng)建的,而非表的定義。Action的Execute方法執(zhí)行完業(yè)務(wù)邏輯,返回一個(gè)ActionForward對(duì)象。當(dāng)ActionServlet轉(zhuǎn)發(fā)請(qǐng)求時(shí),ActionMapping實(shí)例被作為參數(shù)之一傳給相應(yīng)的Action對(duì)象的execute()方法。另一方面,Struts提供了豐富的JSP標(biāo)記庫(kù),View部分使用這些標(biāo)記庫(kù)可以實(shí)現(xiàn)與Model的有效交互并能增強(qiáng)顯示。圖21 MVC模式的結(jié)構(gòu)在MVC設(shè)計(jì)模式中,事件一般是指客戶端Web瀏覽器提交的各種不同的請(qǐng)求,這些請(qǐng)求由控制器進(jìn)行處理,控制器根據(jù)事件的類型來(lái)改變模型或各個(gè)視圖,視圖也可以接受模型發(fā)出的數(shù)據(jù)更新的通知,根據(jù)數(shù)據(jù)更新的結(jié)果調(diào)整視圖效果,展示給用戶。 第四章介紹Spring框架。但是,即使我們用先進(jìn)的J2EE來(lái)開發(fā)Web應(yīng)用,也面臨著許多問(wèn)題需要考慮:怎樣建立用戶接口(user interfaces)?在哪里處理業(yè)務(wù)邏輯和怎樣持久化應(yīng)用數(shù)據(jù)?Struts、Spring、Hibernate這三個(gè)基于WEB應(yīng)用開發(fā)的開源框架,可以為我們解決這些問(wèn)題。各個(gè)層次應(yīng)該使用什么技術(shù)?怎樣才能把應(yīng)用程序設(shè)計(jì)得松耦合和能靈活改變? 構(gòu)架允許層的替換不會(huì)影響到其它層嗎?應(yīng)用程序怎樣處理容器級(jí)的服務(wù)(container level services),比如事務(wù)處理(transactions)?本論文正是基于上述問(wèn)題出發(fā),以開發(fā)一個(gè)信息交流平臺(tái)系統(tǒng)為背景,對(duì)基于MVC模式的Struts框架、Hibernate的ORM機(jī)制和對(duì)持久對(duì)象持久化的管理以及Spring IoC(控制反轉(zhuǎn))技術(shù)進(jìn)行了探討。這三層每一層都有它們各自的問(wèn)題需要回答。J2EE 以 Java 為核心技術(shù),更接近或者滿足于互聯(lián)網(wǎng)在智能化 Web 服務(wù)上對(duì)分布性、開放性和平臺(tái)無(wú)關(guān)性的要求,同時(shí)它在安全性、健壯性、組件化等方面也更為成熟穩(wěn)定,獲得了眾多IT 廠商如 IBM、Oracle、BEA 等共同制定標(biāo)準(zhǔn)并提供技術(shù)支持,因此具有強(qiáng)大的功能,是電子商務(wù)、遠(yuǎn)程教育等開發(fā)的首選平臺(tái)。主要闡述了ORM映射機(jī)制、Hibernate核心編程接口、Hibernate的檢索方式。上述三個(gè)組成部分之間的關(guān)系如圖21所示。從View角度看, ,Java開發(fā)者繼承該類來(lái)創(chuàng)建表單bean。在系統(tǒng)啟動(dòng)初始化的時(shí)候,會(huì)對(duì)這些配置信息進(jìn)行處理,系統(tǒng)針對(duì)每個(gè)action,以供struts應(yīng)用程序運(yùn)行期間使用。如果執(zhí)行成功,ActionForm自動(dòng)將這些參數(shù)信息以JavaBean(一般稱之為Form Bean)的方式保存在ServletContext中,這樣它們就可以被其他Action對(duì)象或者JSP調(diào)用。描述對(duì)象和關(guān)系數(shù)據(jù)庫(kù)之間映射細(xì)節(jié)的元數(shù)據(jù)通常采用XML格式,并且存放在專門的對(duì)象關(guān)系映射文件中。一個(gè)SessionFactory實(shí)例對(duì)應(yīng)一個(gè)數(shù)據(jù)存儲(chǔ)源。 Hibernate的檢索方式從數(shù)據(jù)庫(kù)中檢索對(duì)象是使用Hibernate最有趣(也是最復(fù)雜)的部分。⑤本地SQL檢索方式。③ Spring AOP:通過(guò)配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。 Spring IoC(Inversion of control)控制反轉(zhuǎn)(IoC)也稱依賴注入(Dependence Injection簡(jiǎn)稱DI),它的基本概念是:不創(chuàng)建對(duì)象,但是描述創(chuàng)建它們的方式??膳渲玫捻?xiàng)目有:Bean屬性值及依賴關(guān)系(對(duì)其它Bean的引用)、Bean的創(chuàng)建模式(是否Singleton模式,即是否只針對(duì)指定類維持全局唯一的實(shí)例)、Bean的初始化和銷毀方法。如某個(gè)方法調(diào)用,或者某個(gè)異常被拋出。Before處理邏輯是一種簡(jiǎn)單類型的Advice,它不需要一個(gè)MethodInvocation對(duì)象,因?yàn)樗辉谶M(jìn)入一個(gè)方法前被調(diào)用。MethodInterceptor可以返回不同的值或者拋出一個(gè)異常,甚至可以不調(diào)用目標(biāo)操作。未注冊(cè)用戶:系統(tǒng)應(yīng)該為本類用戶提供查詢注冊(cè)的用戶信息功能、查看文章功能、搜索文章功能。② 層與層之間存在自上而下的依賴關(guān)系,即上層組件會(huì)訪問(wèn)下層組件的API,而下層組件不應(yīng)該依賴上層組件。將應(yīng)用程序分為多層后,可將工作分給不同的開發(fā)小組,從而便于管理。通過(guò)對(duì)業(yè)務(wù)的對(duì)象化,這有利于業(yè)務(wù)邏輯的重用。這四個(gè)模塊組成用戶使用的基本功能模塊。 public void setBoardName (Long boardName) { this. boardName = boardName。 public Object getByPk(Class clazz,Long id)??梢酝ㄟ^(guò)這個(gè)類獲得HibernateTemplate。u update()方法用于把業(yè)務(wù)對(duì)象的更新持久化到數(shù)據(jù)庫(kù)對(duì)應(yīng)的表中。Spring框架負(fù)責(zé)把業(yè)務(wù)處理邏輯與所用到的業(yè)務(wù)處理對(duì)象和DAO聯(lián)系起來(lái)以完成相應(yīng)的業(yè)務(wù)處理。? IForumService和ForumService提供文章的查看、發(fā)表及回復(fù)等相關(guān)服務(wù)。 ……// 省略其它代碼從上面的分析可以看出,用Hibernate實(shí)現(xiàn)持久層,使操作變得非常簡(jiǎn)潔,我們所面對(duì)和操作的是都是具體得業(yè)務(wù)對(duì)象,而讓Hibernate根據(jù)映射文件去完成和數(shù)據(jù)庫(kù)表打交道得那部分工作。Add()方法在添加成功后返回這個(gè)業(yè)務(wù)對(duì)象實(shí)例給調(diào)用者。 public boolean removeBoards(Boards boards)。考慮到每一個(gè)對(duì)象DAO類所需完成功能的相似性,所以可以定義一個(gè)接口超類, 用以封裝通用的方法定義。由上章的分析,本系統(tǒng)涉及的業(yè)務(wù)對(duì)象有:一級(jí)版區(qū)(BOARD)、二級(jí)版區(qū)(BOARDS)、公告(BULLETIN)、廣告(ADV)、推薦(COMMEND)、精華(ELITE)、書簽(BOOKMARK)、黑名單(BLACKUSER)、好友(FRIEND)、留言(GUESTBOOK)、文章(FORUM)、在線統(tǒng)計(jì)(ONLINESTAT)、訂閱(SUBSCIBE)、用戶(USERINFO)、用戶詳細(xì)信息(USERDETAIL)、在線用戶(USERONLINE)、投票(VOTE)、投票項(xiàng)目(VOTEITEM)、投票人員記錄(VOTEUSER)等。表53 ICPS_ VOTE字段名類型(寬度) 關(guān)鍵字 是否非空 字段含義IDbigint(13)Y Y唯一標(biāo)識(shí)符Titlevarchar(100) Y標(biāo)題IsMtinyint(1) 是否多項(xiàng)DeadLinebigint(13) 截止日期4) 投票項(xiàng)目表(ICPS_VOTEITEM)投票項(xiàng)目表用來(lái)存放投票項(xiàng)目的名稱及對(duì)應(yīng)的票數(shù)。借助Hibernate,利用其持久化機(jī)制和CRUD封裝來(lái)減少代碼開發(fā)量和其他層次的耦合度。④ 提高軟件的可重用性。l 搜索文章:提供給用戶搜索自己感興趣的章的功能l 版塊管理:提供給ICPS系統(tǒng)管理員對(duì)討論版區(qū)進(jìn)行管理的功能,包括增加版區(qū)、修改版區(qū)、刪除版區(qū)的功能。要開發(fā)一個(gè)軟件產(chǎn)品,最首要也是最重要的就是需求分析,它是決定一個(gè)系統(tǒng)成功與否的關(guān)鍵。實(shí)現(xiàn)around Advice的類需要實(shí)現(xiàn)接口MethodInterceptor: public interface MethodInterceptor extends Interceptor{ Object invoke(MethodInvocation invocation)throws Throwable。Spring AOP實(shí)現(xiàn)是Spring框架的重要組成部分,它允許開發(fā)者使用聲明式企業(yè)級(jí)服務(wù),比如事務(wù)服務(wù)、安全服務(wù)。通過(guò)切面,我們可以將系統(tǒng)中各個(gè)不同層次上的問(wèn)題隔離開來(lái),實(shí)現(xiàn)統(tǒng)一集約式處理。下面具體介紹這兩個(gè)接口。所以,Spring 框架支持與 Jakarta Struts 的集成。BeanFactory 使用控制反轉(zhuǎn) (IOC) 模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。這是Hibernate使用的最為廣泛的一種檢索方式。這有助于保持Hibernate應(yīng)用在不同類型的執(zhí)行環(huán)境或容器中的可移植性??梢院?jiǎn)單地認(rèn)為會(huì)話是對(duì)于一個(gè)單獨(dú)的工作單元已裝載對(duì)象的緩存或集合。如下圖所示。圖25 Struts請(qǐng)求響應(yīng)流程在控制器調(diào)用具體的Action的Execute方法之前,ActionForm對(duì)象將利用Http請(qǐng)求中的參數(shù)來(lái)填充自己。Action 類主要負(fù)責(zé)將客戶請(qǐng)求映射到處理這些請(qǐng)求的業(yè)務(wù)邏輯Bean,再轉(zhuǎn)向生成響應(yīng)回送給客戶端的頁(yè)面,實(shí)際上充當(dāng)?shù)氖荂ontroller和Model之間的一個(gè)適配器(Adaptor),其功能就是將請(qǐng)求與業(yè)務(wù)邏輯分開。由于引入了MVC設(shè)計(jì)模式,Model 2實(shí)際上是實(shí)現(xiàn)了基于組件的開發(fā),在整個(gè)軟件開發(fā)過(guò)程中實(shí)現(xiàn)了具體清晰的邏輯劃分,能夠有效的區(qū)分不同的角色,這就更適合于大規(guī)模系統(tǒng)的開發(fā)和管理。② 視圖(View):表示層。 論文的章節(jié)安排 第一章引言部分對(duì)本文所要研究課題的研究目的及意義作了簡(jiǎn)要的闡述,說(shuō)明了課題的研究?jī)?nèi)容。它在新興的電子文化、信息咨詢和商業(yè)服務(wù)領(lǐng)域也勢(shì)必蘊(yùn)藏巨大的市場(chǎng)。而開發(fā)這樣一個(gè)信息交流平臺(tái),正是本論文要著手處理的問(wèn)題。 for our business layer we will use Spring。Hibernate 是一項(xiàng)新興的 ORM 技術(shù),它把普通 java 對(duì)象映射到關(guān)系數(shù)據(jù)庫(kù)表,并提供對(duì)對(duì)象的持久化操作。并驗(yàn)證了所設(shè)計(jì)實(shí)現(xiàn)方法的正確性。最初很多的Java Web應(yīng)用甚至全部由JSP頁(yè)面構(gòu)成,這種以JSP為中心的開發(fā)模型被稱為Model 1。這幾個(gè)組件就是:ActionServlet,Action Classes,Action Mapping(包括ActionForward),ActionFrom Bean。u Struts ActionForm Bean在Struts架構(gòu)中,使用一種名為ActionForm的系統(tǒng)狀態(tài)Bean,來(lái)實(shí)現(xiàn)應(yīng)用系統(tǒng)的非持久性數(shù)據(jù)儲(chǔ)存和維護(hù)功能。 Hibernate概述 Hibernate是一種適合于Java語(yǔ)言的對(duì)象關(guān)系映射(ORM)解決方案。圖33是這5個(gè)核心接口的類框圖。如果應(yīng)用程序只訪問(wèn)一個(gè)數(shù)據(jù)庫(kù),只需要在應(yīng)用初始化的時(shí)候創(chuàng)建一個(gè)會(huì)話工廠實(shí)例。②標(biāo)識(shí)符檢索方式。 Spring框架概述Spring框架是一個(gè)分層的Java/J2EE應(yīng)用程序框架,基于Expert OneonOne J2EE設(shè)計(jì)和發(fā)行的代碼。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量(例如打開和關(guān)閉連接)。IoC的實(shí)現(xiàn)模式有三種:Type1 接口注入、Type2 設(shè)值注入、Type3 構(gòu)造子注入。為加強(qiáng)BeanFactory及其實(shí)現(xiàn)提供的功能,Spring框架引入了ApplicationContext接口。l Throw:在連接點(diǎn)拋出異常時(shí)進(jìn)行異常處理。Before處理邏輯可被用于任何類型的切入點(diǎn)。通過(guò)IntroductionInterceptor可以實(shí)現(xiàn)多線程訪問(wèn)中的類鎖定?;谏鲜龇治?,本系統(tǒng)需要完成以下具體任務(wù):l 會(huì)員注冊(cè):提供新會(huì)員注冊(cè)功能,包括提供錄入信息的界面,檢查注冊(cè)信息的有效性,并將注冊(cè)會(huì)員信息保存在在對(duì)應(yīng)數(shù)據(jù)庫(kù)的表中。② 提高了軟件的可維護(hù)性。Struts主要在這一層負(fù)責(zé)為用戶管理請(qǐng)求和響應(yīng);提供ActionFrom來(lái)封裝與用戶互動(dòng)的數(shù)據(jù)元素;提供控制器(controller)代理調(diào)用業(yè)務(wù)邏輯;處理從其他層拋出的Struts Action異常;l 業(yè)務(wù)層:具體的業(yè)務(wù)邏輯通常導(dǎo)致代碼的高度耦合,因此我們將業(yè)務(wù)邏輯分為單獨(dú)的一層,其目的也是希望通過(guò)該層,來(lái)降低它與系統(tǒng)其他部分的耦合度。圖51 系統(tǒng)架構(gòu)層次圖 數(shù)據(jù)庫(kù)設(shè)計(jì)ICPS系統(tǒng)開發(fā)的總的任務(wù)是方便用戶進(jìn)行信息交流。聯(lián)系各個(gè)模塊的主線是使用者的權(quán)限,用戶能夠使用系統(tǒng)的哪些功能是由用戶權(quán)限決定的。在應(yīng)用運(yùn)行時(shí),Hibernate將根據(jù)這個(gè)映射文件來(lái)生成各種SQL語(yǔ)句,實(shí)現(xiàn)數(shù)據(jù)的訪問(wèn)。 public void deleteAll(Collection entities) throws DaoException。這個(gè)方法是通過(guò)SessionFactoryUtils 類來(lái)獲取Session實(shí)例的。 業(yè)務(wù)對(duì)象DAO封裝了Hibernate的實(shí)現(xiàn)細(xì)節(jié),提供訪問(wèn)接口,供業(yè)務(wù)層調(diào)用。BoardsService主要負(fù)責(zé)提供二級(jí)版區(qū)的管理和權(quán)限控制等服務(wù)。④ IAdvService和AdvService提供廣告管理相關(guān)服務(wù)。接下來(lái)我們以BoardsDAO的實(shí)現(xiàn)來(lái)說(shuō)明如何實(shí)現(xiàn)一個(gè)具體業(yè)務(wù)對(duì)象DAO。u getQuery()方法提供給調(diào)用者一個(gè)Query對(duì)象,它需要調(diào)用者傳入一個(gè)SQL語(yǔ)句的字符串作為參數(shù)。 public List find(String queryString, Object param) throws DaoException。在XML配置文件中分別用屬性onetomany和manytoone表示這種關(guān)聯(lián)關(guān)系。例如,注冊(cè)用戶具有文章瀏覽、發(fā)表、回復(fù)的權(quán)限,那么他就能使用ICPS系統(tǒng)的瀏覽、發(fā)表、回復(fù)的功能。結(jié)合本系統(tǒng)需求,根據(jù)上述問(wèn)題,與系統(tǒng)相關(guān)的主要的數(shù)據(jù)庫(kù)表有11個(gè)(這只是部分表),其主要字段及其關(guān)系如圖52所示。通過(guò)Spring的IOC模式來(lái)裝配業(yè)務(wù)組件,如DAO對(duì)象,使系統(tǒng)更具擴(kuò)展性。層數(shù)越多,可維護(hù)性也會(huì)不斷提高,因?yàn)樾薷能浖哪骋粚拥膶?shí)現(xiàn),不會(huì)影響其他的層。l 編輯文章:提供給發(fā)表文章或
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1