各技術(shù)框架架構(gòu)圖_第1頁
各技術(shù)框架架構(gòu)圖_第2頁
各技術(shù)框架架構(gòu)圖_第3頁
各技術(shù)框架架構(gòu)圖_第4頁
各技術(shù)框架架構(gòu)圖_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、各種系統(tǒng)架構(gòu)圖及其簡介I.Spri ng 架構(gòu)圖Spring是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一 就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為 J2EE應(yīng)用程序開發(fā)提供集成的框架。 Spring框架的功能可以用在任何J2EE服務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring的核 心要點(diǎn)是:支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對象。這樣的對象可以在不同J2EE環(huán) 境(Web或EJB )、獨(dú)立應(yīng)用程序、測試 環(huán)境之間重用。Spring ORMiBa怡 suppodJDO supportSpring WebMuTlpart rc

2、sotvorSpring AOPmetsdartaAOP mltaslruGbjreSpring DAOTrarisacbor inhasliuctureJOBC supper!DAO supportSpring ContextApplication coni頤Ul supportValidatcnJNDL EJBJfidMhHSpring WebMVCWeb MVCFfaiinewofkWeb V mwsjSP/VdMitYPDFJExpoitSpring CoreSupporting uUibcsBan conlainef組成Spring框架的每個(gè)模塊(或組件)都可以單獨(dú)存在,或者與其他一

3、個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)。每個(gè) 模塊的功能如下:*核心容器:核心容器提供 Spring框架的基本功能。核心容器的主要組件是 BeanFactory,它 是工廠模式的實(shí)現(xiàn)。BeanFactory使用控制反轉(zhuǎn) (IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范 與實(shí)際的應(yīng)用程序代碼分開。* Spring上下文:Spring上下文是一個(gè)配置文件,向 Spring框架提供上下文信息。Spring上下 文包括企業(yè)服務(wù),例如JNDI、EJB、電子郵件、國際化、校驗(yàn)和調(diào)度功能。* Spring AOP :通過配置管理特性,Spring AOP模塊直接將面向方面的編程功能集成到了Spring框架中。所以,可以很容易地使

4、Spring框架管理的任何對象支持 AOP。Spring AOP模 塊為基于Spring的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。通過使用Spring AOP,不用依賴EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。* Spring DAO : JDBC DAC抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫 供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡化了錯(cuò)誤處理,并 且極大地降低了需要編寫 的異常代碼數(shù)量(例如打開和關(guān)閉連接)。 Spring DAO的面向JDBC的異常遵從通用的DAO異 常層次結(jié)構(gòu)。* Spring ORM : Spring框架插入了若干個(gè)ORM框架,從而提

5、供了 ORM勺對象關(guān)系工具,其中包 括JDO、Hibernate 和iBatis SQLMap。所有這些都遵從 Spring的通用事務(wù)和 DAO異常層次 結(jié)構(gòu)。2.ibatis 架構(gòu)圖ibatis 是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括 SQL Maps和Data Access Objects ( DAO ),同時(shí)還 提供一個(gè)利用這個(gè)框架開發(fā)的 JPetStore 實(shí)例。SqjNjp. Hjfmh*Sql 林叩心xriM亠-一一iiunlSQL MapParanieier Object tlniMitMp(HattiMhpaTreeMiap.iJPrimitrw(In

6、teger,Strirwj.liMapped SUktementMapped StntemenlMapped StatementMapped Suitemen!Mapped StalememlMapped StatementiMappedMapfurdSuiemetuMapped SUtfwntJDBCRetull Gb*eet (OutpLrt)PlMlUBJVe(Integer,5lrtng.JUIBATIS :最大的優(yōu)點(diǎn)是可以有效的控制 sql發(fā)送的數(shù)目,提高數(shù)據(jù)層的執(zhí)行效率!它需要程序員 自己去寫sql語句,不象hibernate 那樣是完全面向?qū)ο蟮模詣?dòng)化的,ibatis 是半自動(dòng)

7、化的,通過 表和對象的映射以及手工書寫的 sql語句,能夠?qū)崿F(xiàn)比hibernate 等更高的查詢效率。Ibatis只是封裝了數(shù)據(jù)訪問層,替我們做了部分的對象關(guān)系映射。但代價(jià)是必須要寫xml配置文件,相對于Hibernate還要寫很多sql 。Hibernate通過工具直接從數(shù)據(jù)庫模式生成實(shí)體類和基本的 配置文件,而且大部分情況下不需要我們寫 sql ,會(huì)較大的提升開發(fā)效率。但這些也有很多的局限性, 尤其是對環(huán)境的要求較高(數(shù)據(jù)庫設(shè)計(jì),對象設(shè)計(jì),團(tuán)隊(duì)的協(xié)作等)。個(gè)人感覺Ibatis 對項(xiàng)目比較有意義的地方在于它小巧靈活,可擴(kuò)展,封裝了數(shù)據(jù)訪問層(事務(wù),緩存,異常,日志),并提供了 DAO框 架支

8、持。禾U用Ibatis 我們可以做到代碼和sql的分離,只要sql能夠解決的問題,Ibatis 就能幫我們較 容易的解決,同時(shí)也使我們的項(xiàng)目對某一框架的依賴性變小(因?yàn)镮batis是非侵入性的)。這將極大的降低項(xiàng)目風(fēng)險(xiǎn),減少解決復(fù)雜問題的時(shí)間,使項(xiàng)目的維護(hù)變得簡單。Ibatis 對于應(yīng)用的修改,調(diào)試,擴(kuò)充和維護(hù)將會(huì)變得容易自然。修改時(shí),我們主要修改的是代 表 模型的實(shí)體對象,xml配置文件中的sql ,和/或配置文件的ResultMap (很多時(shí)候是不需要的)。 同時(shí),sql和代碼分離,我們不用在代碼的StringBuffer的即pend方法之間尋找需要修改的sql 。配置文件中的sql便利了

9、我們的調(diào)試和對sql的評(píng)審及以后的sql重用。3. structs1 架構(gòu)圖Struts 是Apache基金會(huì)Jakarta 項(xiàng)目組的一個(gè) Ope n Source項(xiàng)目,它采用 MVC模式,能夠很好 地幫助java開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將MVC模式分離顯示邏輯和業(yè)務(wù)邏輯的能力發(fā)揮得淋漓盡致。Structs框架的核心是一個(gè)彈性的控 制層,基于如 Java Servlets ,JavaBeans, ResourceBundies 與XML 等標(biāo)準(zhǔn)技術(shù),以及 Jakarta Common啲一些類庫。Struts 有一組相互協(xié)作的類

10、(組件)、Serlvet以及jsp tag lib組成。基于struts 構(gòu)架的web應(yīng)用程序基本上符合JSP Model2的設(shè)計(jì)標(biāo)準(zhǔn),可以說是一個(gè)傳統(tǒng)MVC設(shè)計(jì)模式的一種變化類型。Struts 有其自己的控制器(Controller ),同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層( Model) 和視圖層(View )。在模型層,Struts可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,如 JDBC / EJB,以及 其它第三方類庫,如 Hibernate / iBATIS ,或者Object Relational Bridge(對象關(guān)系橋)。在視圖層,Struts 能夠與JSP,包括JSTL與JSF,以及V

11、elocity 模板,XSLT與其它表示層技術(shù)。Struts為每個(gè)專業(yè)的Web應(yīng)用程序做背后的支撐,幫助為你的應(yīng)用創(chuàng)建一個(gè)擴(kuò)展的開發(fā)環(huán)境。 Client browser (客戶瀏覽器)來自客戶瀏覽器的每個(gè)HTTP請求創(chuàng)建一個(gè)事件。Web容器將用一個(gè)HTTP響應(yīng)作出響應(yīng)。 Controller(控制器)控制器接收來自瀏覽器的請求,并決定將這個(gè)請求發(fā)往何處。就Struts而言,控制器是以servlet實(shí)現(xiàn)的一個(gè)命令設(shè)計(jì)模式。struts-co nfig.xml文件配置控制器。 業(yè)務(wù)邏輯業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。就Struts而言,這是通過作為實(shí)際業(yè)務(wù)邏輯“瘦”包裝的Acti

12、on類完成的。 Model (模型)的狀態(tài)模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對象更新應(yīng)用程序的狀態(tài)。Acti onForm. bea n 在會(huì)話級(jí)或請求級(jí)表示模型的狀態(tài),而不是在持久級(jí)。JSP文件使用JSP標(biāo)記讀取來自ActionForm. bean 的信息。 View (視圖)視圖就是一個(gè)JSP文件。其中沒有流程邏輯,沒有業(yè)務(wù)邏輯,也沒有模型信息-只有標(biāo)記。標(biāo)記是使Struts 有別于其他框架(如Velocity )的因素之一4. structs2 架構(gòu)圖Struts 2 相對于Struts 1.X,將實(shí)現(xiàn)用戶業(yè)務(wù)邏輯(Action )同Servlet API 分離開,這種分 離機(jī)制,是采用了攔截

13、器或者攔截器棧(攔截器鏈)。攔截器是Struts 2的核心內(nèi)容之一。Struts 2 內(nèi) 建了多個(gè)攔截器和攔截器棧(由多個(gè)攔截器形成的攔截器鏈),將用戶的Web請求進(jìn)行攔截處理,從而提供了更加豐富的功能,例如數(shù)據(jù)類型轉(zhuǎn)換、國際化、文件上傳等。HttpServ let RequestActkonCaniextClenUpOther fHters StteMesh. etc)ConTiguraiion Managerslruts,xmlActJonProxyFilferOispatcherInferceptor 1ActionMapperInterceptor 2Interceptor 3ActionResultInterceptor 2Tag Sub&y&te-s1uJMS ServerInstanceSMONDatabaseDatabase buffer cacheControl fltesUser processData Diet, cac

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論