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

正文內(nèi)容

j2ee的企業(yè)資產(chǎn)管理系統(tǒng)網(wǎng)上采購模塊的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-05-09 00:23 本頁面
 

【文章內(nèi)容簡介】 目,提供了一個(gè)實(shí)現(xiàn)MVC架構(gòu)的高度自動(dòng)化的方式,作為一個(gè)MVC的框架,Struts對(duì)Model、View和Controller都提供了對(duì)應(yīng)的實(shí)現(xiàn)組件:(l)控制器(Controller):控制器的作用是從客戶端接收請(qǐng)求,并且選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果送回到客戶端。在Struts中Controller功能由ActionServlet和ActionMapping對(duì)象構(gòu)成。ActionServlet是MVC設(shè)計(jì)模式的決策控制部分,也是Struts框架的核心。它根據(jù)ActionMapping把Http消息形式的用戶請(qǐng)求轉(zhuǎn)換成相應(yīng)的應(yīng)用程序的動(dòng)作。ActionServlet還負(fù)責(zé)用相應(yīng)的請(qǐng)求參數(shù)填充ActionForm(通常稱之為FormBean),并將其傳給對(duì)應(yīng)的動(dòng)作類(通常稱之為ActionBean)。動(dòng)作類Action來實(shí)現(xiàn)核心商業(yè)邏輯,它可以訪問JavaBean或調(diào)用EJB,最后動(dòng)作類指向相應(yīng)的JSP檔,最終生成相關(guān)的視圖。ActionServlet包括一組基于配置的ActionMapping對(duì)象,每個(gè)ActionMapping對(duì)象實(shí)現(xiàn)了一個(gè)請(qǐng)求到一個(gè)具體的Model部分中Action處理器對(duì)象類之間的點(diǎn)到點(diǎn)的映像。ActionMapping中有Action對(duì)象的名字和地址的描述,當(dāng)有請(qǐng)求傳入Controller時(shí),它把請(qǐng)求的路徑映像到Action的地址,并把請(qǐng)求傳給那個(gè)Action類。ActionMapping類也包括一些程序中可能的唯一的信息,例如本地變量,特定環(huán)境數(shù)據(jù),或者URL。(2)模型(Model):表示應(yīng)用程序的狀態(tài)和業(yè)務(wù)邏輯[9]。MVC系統(tǒng)中的Model部分從概念上可以分為兩類:系統(tǒng)的內(nèi)部狀態(tài)和改變系統(tǒng)狀態(tài)的動(dòng)作。Struts為Model部分提供了Action和ActionForm對(duì)象,所有的Action處理器對(duì)象都是程序開發(fā)者從Struts的Action類派生的子類,并對(duì)其中主要的方法進(jìn)行覆蓋。Action處理器對(duì)象封裝了具體的業(yè)務(wù)處理邏輯,處理具體的業(yè)務(wù)邏輯操作,并且把響應(yīng)提交到合適的View組件以產(chǎn)生響應(yīng)。Struts提供的ActionForm組件對(duì)象,可以通過定義屬性描述客戶端窗體數(shù)據(jù)。我們可以從它派生子類的對(duì)象,利用它可以實(shí)現(xiàn)對(duì)客戶端的窗體數(shù)據(jù)的良好封裝和支持,相應(yīng)的Action處理器對(duì)象可以直接對(duì)它的窗體數(shù)據(jù)進(jìn)行讀寫,而不再需要和Request、Response對(duì)象進(jìn)行數(shù)據(jù)交互,通過ActionForm組件對(duì)象實(shí)現(xiàn)了對(duì)View和Model之間非持久性數(shù)據(jù)交互的支持。(3)視圖(View):視圖是用戶看到并與之交互的界面。Struts應(yīng)用中的View部分是通過JSP技術(shù)實(shí)現(xiàn)的。Struts提供了自定義的標(biāo)簽庫,通過使用這些卷標(biāo)定義的JSP窗體可以和Model部分中的ActionForm的映像,完成對(duì)用戶數(shù)據(jù)的相關(guān)封裝,同時(shí)還可以使用這些標(biāo)簽來豐富JSP頁面。 數(shù)據(jù)持久技術(shù)與Hibernate 在采用了Struts技術(shù)的框架中,Struts簡化了Web層的開發(fā),實(shí)現(xiàn)了應(yīng)用程序的顯示邏輯和業(yè)務(wù)邏輯的分離,使應(yīng)用程序更趨模塊化,應(yīng)用程序更加容易維護(hù)。這種應(yīng)用程序的基本架構(gòu)是MVC(Struts)+DAO(Data Access Object)+JDBC+Databases。為了進(jìn)一步地提高代碼的可復(fù)用性和可維護(hù)性,提高開發(fā)效率,需要一個(gè)更加有效的架構(gòu)。因?yàn)榇蠖鄶?shù)的應(yīng)用程序都涉及到的數(shù)據(jù)庫操作,通常數(shù)據(jù)庫表會(huì)很多而且關(guān)系復(fù)雜,如果使用DAO+JDBC訪問數(shù)據(jù)庫將會(huì)使得編程過程復(fù)雜化,進(jìn)而帶來的是大量的維護(hù)工作,特別是層與層之間的耦合性大,表格屬性的變動(dòng)將極大的影響代碼的維護(hù),因此需要有一種方便通用的方案來解決這個(gè)問題。這里將采用對(duì)象/關(guān)系映像(Object/Relational Mapping)的數(shù)據(jù)持久化技術(shù)來簡化編程的復(fù)雜度,目前實(shí)現(xiàn)對(duì)象關(guān)系映像也已經(jīng)有一些比較成熟的工具,如Caster,JDOGenie,Hibernate等。本文主要應(yīng)用Hibernate:在Struts中,不需要太多的代碼,它能夠?qū)?duì)象映像到關(guān)系數(shù)據(jù)庫中的行,不需要編寫復(fù)雜的SQL語句,開發(fā)架構(gòu)也就變成Struts+ DAO+ Hibernate+Database,毫無疑問使用Hibemate實(shí)現(xiàn)持久層是一種有效的選擇,它可以大大減少操作數(shù)據(jù)庫的工作量,并且使得系統(tǒng)更加易于維護(hù)。 Hibernate的概述和特點(diǎn)Hibernate是一種很好的ORM(Object/Relational Mapping)映射工具,支持使用各種Java思想如:inheritance,association,position,collections等實(shí)現(xiàn)的對(duì)象。它可以直接映像大部分的JavaBean而不需要做任何修改,即使修改最多也就是在對(duì)應(yīng)的Bean里面加上一些私有訪問方法;可以將一個(gè)用戶定義的多個(gè)實(shí)例映像到一張表的同一行。還可以用代理模式簡化加載類的過程[14]。對(duì)于使用JDBC和SQL手工操作數(shù)據(jù)庫來說,使用Hibernate,可以大大減少操作數(shù)據(jù)庫的工作量。因此使用它,既可以用來在Java應(yīng)用程序中取代大部分JDBC代碼,也可以很方便地整合到系統(tǒng)中作為持久層框架。Hibernate使用數(shù)據(jù)庫和配置文件數(shù)據(jù)來給應(yīng)用程序提供相應(yīng)的持久化服務(wù)和持久化的對(duì)象PO(Persistent Objects)。,可以省去大量復(fù)雜的JDBC編程,Hibernate可以支持17種數(shù)據(jù)庫,同時(shí)它也支持連接池應(yīng)用。(1)Hibernate是JDBC的輕量級(jí)的對(duì)象封裝,它是一個(gè)獨(dú)立的對(duì)象持久層框架。Hibernate的特點(diǎn)主要是簡單、易用、強(qiáng)大、靈活而且速度夠快。Hibernate可以代替JDBC的編程應(yīng)用的場(chǎng)合,例如Java應(yīng)用程序中訪問數(shù)據(jù)庫部分的代碼,DAO模型中接入數(shù)據(jù)庫時(shí)的訪問代碼,甚至可以是BMP里面的訪問數(shù)據(jù)庫的代碼。另外,Hibernate擁有自己的功能強(qiáng)大的查詢語言 (HQL),HQL與SQL非常相似,HQL基于SQL,但它提供了更加面向?qū)ο蟮姆庋b。(2)Hibernate不同于Entity Bean。Entity Bean由容器處理大部分的資料完整性、資源管理和并發(fā)性功能,因此開發(fā)人員只需要關(guān)注業(yè)務(wù)邏輯和數(shù)據(jù)處理。從軟件整體的框架來看,Hibernate不能用于完全替代 Entity Bean。Hibernate和 Entity Bean都為程序員實(shí)現(xiàn)了透明的持久性,而且程序員都不需要關(guān)心太多的技術(shù)細(xì)節(jié)[15]。Hibernate另外也為我們提供了更靈活的事務(wù)管理機(jī)制,Hibernate使用Session來管理事務(wù),而 Entity Bean則將事務(wù)管理委派給了EJB容器。Hibernate雖然具有自己的事務(wù)管理,但是實(shí)際上它的事務(wù)管理是對(duì) JDBC Transaction的封裝,或者是對(duì) JTA Transaction的封裝,也就是上面提到的,Hibernate是對(duì)JDBC的輕量級(jí)對(duì)象封裝。值得注意的是Hibernate的事務(wù)管理更加靈活,它可以在 JDBC Transaction和JTA Transaction之間進(jìn)行選擇,默認(rèn)情況下將使用JDBC Transaction。(3) Hibernate是一個(gè)和JDBC密切關(guān)聯(lián)的框架,Hibernate的兼容性只與JDBC驅(qū)動(dòng)和數(shù)據(jù)庫有關(guān)系,而與Java程序或者APP Server沒有任何關(guān)系。(4)靈活的對(duì)象系映像方法,可以實(shí)現(xiàn)各種不同類型的映射,而且Hibernate具有簡單易于操作的API接口和豐富的資源配置文文件,這些都使得應(yīng)用程序的開發(fā)更加簡單和快捷。在軟件開發(fā)過程中引入成熟的持久化實(shí)現(xiàn)框架,大大提高了數(shù)據(jù)庫訪問層的開發(fā)效率,具體表現(xiàn)在以下幾個(gè)方面:(l)可以減少乏味代碼的編寫。Hibernate持久層框架封裝了數(shù)據(jù)持久層的很多相關(guān)的技術(shù)細(xì)節(jié),例如事物管理、數(shù)據(jù)庫連接管理、SQL語句的生成等,使得開發(fā)人員可以避免重復(fù)的JDBC編程,將精力投入到業(yè)務(wù)邏輯具體實(shí)現(xiàn)中去。(2)更加面向?qū)ο蟮脑O(shè)計(jì)。Hibernate持久層框架是建立在面向?qū)ο蟮脑O(shè)計(jì)思想之上的,而ORM(Object Relational Mapping)是Hibernate持久層框架的基本特性,也是Hibernate實(shí)現(xiàn)面向?qū)ο笤O(shè)計(jì)的關(guān)鍵技術(shù)。ORM為系統(tǒng)面向?qū)ο蟮脑O(shè)計(jì)的實(shí)現(xiàn)提供了更加自然的實(shí)現(xiàn)方式,可以通過ORM將系統(tǒng)中的 Domain Objects自動(dòng)映像到各個(gè)數(shù)據(jù)庫表,從而在編碼過程中只需利用面向?qū)ο蟮姆椒▉硖幚鞳bjects的相關(guān)屬性,而無須對(duì)JDBC ResultSets中的字段進(jìn)行分別處理。(3)可以保證更好的性能。Hibernate持久層框架提供了優(yōu)秀的性能優(yōu)化機(jī)制,如內(nèi)置的數(shù)據(jù)庫連接池支持、PrepareStatement緩存、數(shù)據(jù)緩存等。這些對(duì)于上層架構(gòu)完全透明的優(yōu)化機(jī)制的綜合使用大大提高了系統(tǒng)的性能。(4)更好的可移植性?;贘ava的跨平臺(tái)特性,開發(fā)的軟件系統(tǒng)可以在不同的操作系統(tǒng)之間切換,但由于數(shù)據(jù)庫之間的差異,系統(tǒng)在數(shù)據(jù)庫平臺(tái)之間移植并不太容易實(shí)現(xiàn)。而Hibernate持久層框架由于其設(shè)計(jì)上的良好隔離,提供了對(duì)不同數(shù)據(jù)庫的良好支持,只需簡單地修改其配置文件中的數(shù)據(jù)庫的屬性參數(shù),即可實(shí)現(xiàn)底層數(shù)據(jù)庫的切換,更好地提高了系統(tǒng)的可移植性,也更好地保護(hù)了己有的人力和資源投入。 Spring框架的應(yīng)用 Spring是一個(gè)開源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。傳統(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ù)器,甚至無須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服務(wù)器的功能,如聲明式事務(wù)等。Spring致力于J2EE應(yīng)用的各層的解決方案,而不是僅僅專注于某一層的方案[16]??梢哉fSpring是企業(yè)應(yīng)用開發(fā)的“一站式”選擇,并貫穿表現(xiàn)層、業(yè)務(wù)層及持久層。然而,Spring并不想取代那些已有的框架,而與它們無縫地整合。簡單來說,Spring是一個(gè)一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架:(1)輕量:大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR檔里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類。(2)控制反轉(zhuǎn):Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反——像從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。(3)面向切面:Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。(4)容器:Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1