



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、I.Spring 架構(gòu)圖Spring 是一個開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的。框架的主要優(yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個組件,同時為 J2EE應(yīng)用程 序開發(fā)提供集成的框架。Spring框架的功能可以用在任何J2EE服務(wù)器中,大多數(shù)功能也 適用于不受管理的環(huán)境。Spring的核心要點是:支持不綁定到特定 J2EE服務(wù)的可重用 業(yè)務(wù)和數(shù)據(jù)訪問對象。這樣的對象可以在不同J2EE環(huán)境(Web或EJB )、獨立應(yīng)用程序、 測試環(huán)境之間重用。組成Spring框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián) 合實現(xiàn)。每個模塊的功能如下:?核心容器:核心
2、容器提供 Spring框架的基本功能。核心容器的主要組件是 BeanFactory ,它是工廠模式的實現(xiàn)。BeanFactory使用控制反轉(zhuǎn) (IOC ) 模式 將應(yīng)用程序的配置和依賴性規(guī)范與實際的應(yīng)用程序 代碼 分 開。? Spring上下文:Spring上下文是一個配置文件,向Spring框架提供上下文信息。 Spring上下文包括企業(yè)服務(wù),例如JNDI、EJB、電子郵件、國際化、校驗和調(diào)度 功能。? Spring AOP :通過配置管理特性,Spring AOP模塊直接將面向方面的編程功能 集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何對象支 持AOP。S
3、pring AOP模塊為基于Spring的應(yīng)用程序中的對象提供了事務(wù)管理服 務(wù)。通過使用Spring AOP ,不用依賴EJB組件,就可以將聲明性事務(wù)管理集成到 應(yīng)用程序中。? Spring DAO : JDBC DAOf由象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理 異常處理和不同數(shù)據(jù)庫 供應(yīng)商拋出的錯誤消息。異常層次結(jié)構(gòu)簡化了錯誤處理, 并 且極大地降低了需要編寫 的異常代碼數(shù)量(例如打開和關(guān)閉連接)。Spring DAO 的面向JDBC的異常遵從通用的DAO異常層次結(jié)構(gòu)。? Spring ORM : Spring框架插入了若干個ORMM架,從而提供了 ORM勺對象關(guān)系 工具,其中包括
4、JDO、Hibernate 和iBatis SQLMap。所有這些都遵從 Spring 的 通用事務(wù)和DAO異常層次結(jié)構(gòu)。2.ibatis 架構(gòu)圖ibatis 是一個基于Java的持久層框架。iBATIS 提供的持久層框架包括 SQL Maps 和Data Access Objects ( DAO ),同時還 提供一個利用這個框架開發(fā)的 JPetStore 實 例。IBATIS :最大的優(yōu)點是可以有效的控制 sql發(fā)送的數(shù)目,提高數(shù)據(jù)層的執(zhí)行效率! 它需要程序員自己去寫sql語句,不象hibernate 那樣是完全面向?qū)ο蟮?,自動化的?ibatis是半自動化的,通過表和對象的映射以及手工書寫
5、的sql語句,能夠?qū)崿F(xiàn)比hibernate 等更高的查詢效率。Ibatis 只是封裝了數(shù)據(jù)訪問層,替我們做了部分的對象關(guān)系映射。但代價是必須要寫xml配置文件,相對于Hibernate還要寫很多sql 。 Hibernate 通過工具直接從數(shù)據(jù)庫 模式生成實體類和基本的配置文件,而且大部分情況下不需要我們寫sql ,會較大的提升 開發(fā)效率。但這些也有很多的局限性,尤其是對環(huán)境的要求較高(數(shù)據(jù)庫設(shè)計,對象設(shè)計, 團(tuán)隊的協(xié)作等)。個人感覺Ibatis 對項目比較有意義的地方在于它小巧靈活,可擴展,封裝了數(shù)據(jù)訪問層(事務(wù),緩存,異常,日志),并提供了DAO框架支持。禾用Ibatis 我們可以做到代碼
6、和sql的分離,只要sql能夠解決的問題,Ibatis 就 能幫我們較容易的解決,同時也使我們的項目對某一框架的依賴性變?。ㄒ驗?Ibatis 是 非侵入性的)。這將極大的降低項目風(fēng)險,減少解決復(fù)雜問題的時間,使項目的維護(hù)變得 簡單。Ibatis 對于應(yīng)用的修改,調(diào)試,擴充和維護(hù)將會變得容易自然。修改時,我們主要修 改的是代表模型的實體對象,xml配置文件中的sql ,和/或配置文件的ResultMap (很 多時候是不需要的)。同時,sql和代碼分離,我們不用在代碼的StringBuffer 的append 方法之間尋找需要修改的sql。配置文件中的sql便利了我們的調(diào)試和對sql的評審及
7、以后的sql重用。3.structs1 架構(gòu)圖Struts 是Apache基金會Jakarta 項目組的一個 Open Source項目,它采用 MVC模 式,能夠很好地幫助java開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣, Struts也是面向?qū)ο笤O(shè)計,將 MVC模式”分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓 盡致。Structs 框架的核心是一個彈性的控制層,基于如 Java Servlets , JavaBeans , ResourceBundles 與 XML等標(biāo)準(zhǔn)技術(shù), 以及 Jakarta Commons 的一些類庫。Struts 有 一組相互協(xié)作的類(
8、組件)、Serlvet以及jsp tag lib 組成?;趕truts 構(gòu)架的web應(yīng) 用程序基本上符合JSP Model2的設(shè)計標(biāo)準(zhǔn),可以說是一個傳統(tǒng) MVC設(shè)計模式的一種變化 類型。Struts有其自己的控制器(Controller ),同時整合了其他的一些技術(shù)去實現(xiàn)模型 層(Model )和視圖層(View )。在模型層,Struts可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié) 合,如 JDBC/ EJB,以及其它第三方類庫,如 Hibernate / iBATIS,或者 Object Relational Bridge(對象關(guān)系橋)。在視圖層,Struts 能夠與JSP,包括JSTL與JSF ,以
9、及Velocity 模板,XSLT與其它表示層技術(shù)。Struts為每個專業(yè)的Web應(yīng)用程序做背后的支撐,幫助為你的應(yīng)用創(chuàng)建一個擴展的 開發(fā)環(huán)境。Client browser (客戶瀏覽器)來自客戶瀏覽器的每個HTTP請求創(chuàng)建一個事件。Web容器將用一個HTTP響應(yīng)作出響應(yīng)。Controller (控制器)控制器接收來自瀏覽器的請求,并決定將這個請求發(fā)往何處。就 Struts而言,控制器是 以servlet 實現(xiàn)的一個命令設(shè)計模式。struts-config.xml文件配置控制器。業(yè)務(wù)邏輯業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。就 Struts而言,這是通過作為 實際業(yè)務(wù)邏輯“瘦”包裝
10、的Action類完成的。Model (模型)的狀態(tài)模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對象更新應(yīng)用程序的狀態(tài)。 ActionForm. bean 在會話級 或請求級表示模型的狀態(tài),而不是在持久級。JSP文件使用JSP標(biāo)記讀取來自ActionForm. bean的信息。View (視圖)視圖就是一個JSP文件。其中沒有流程邏輯,沒有業(yè)務(wù)邏輯,也沒有模型信息-只有標(biāo)記。標(biāo)記是使Struts 有別于其他框架(如 Velocity )的因素之一4.structs2 架構(gòu)圖Struts 2 相對于Struts 1.X,將實現(xiàn)用戶業(yè)務(wù)邏輯(Action )同Servlet API 分離開,這種分離機制,是采用了攔
11、截器或者攔截器棧(攔截器鏈)。攔截器是Struts 2的核心內(nèi)容之一。Struts 2 內(nèi) 建了多個攔截器和攔截器棧(由多個攔截器形成的攔截器鏈),將用戶 的Web請求進(jìn)行攔截處理,從而提供了更加豐富的功能,例如數(shù)據(jù)類型轉(zhuǎn)換、國際化、文Act Io n Co rite xtC lea n UpOther flttors <SitaMesht gig】Action InvocationConfigdr4ll-on ManagerAOTiOnPrdkyAcilonstruts. xmlResultR Ite rDI spnfcherr 1InHEgWor 2.IIntcreeptor3 -I
12、 n t«rcep!or21rlsre 白 ptor 1 jLHt tp£«rvl«tRAsponIniQFUjBprcir ;ActionMappQFTemplateKey;件上傳等。Sefvifft Fiile(r- 5iirms Gow intorcep»ws user aealwl5 .Hibernate 架構(gòu)圖Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級 的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的
13、客戶端程序使用,也可 以在Servlet/JSP 的Web應(yīng)用中使用,最具革命 意義的是,Hibernate 可以在應(yīng)用EJB的 J2EE架構(gòu)中取代CMP ,完成數(shù)據(jù)持久化的重任。Hibernate 的核心接口一共有 5 個,分別為:Session 、Transaction 、和Configuration 。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持 久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對這五個核心接口分別加以介紹。 Session接 口:Session 接口負(fù)責(zé)執(zhí)行被持久化對象的 CRUCft作(CRUD的任務(wù)是 完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。
14、但需要注意的是Session對象是非線程安全的。同時,Hibernate 的session 不同于JSP應(yīng)用中的HttpSession 。這 里當(dāng)使用session這個術(shù)語時,其實指的是Hibernate中的session ,而以后會將 HttpSesion 對象稱為用戶session 。 SessionFactory 接口:SessionFactory 接口 負(fù)責(zé)初 始化 Hibernate 。它充當(dāng)數(shù)據(jù) 存儲源的代理,并負(fù)責(zé)創(chuàng)建 Session對象。這里用到了工廠模式。需要注意的是 SessionFactory 并不是輕量級的,因為一般情況下,一個項目通常只需要一個 SessionFact
15、ory 就夠,當(dāng)需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個 SessionFactory 。 Configuration 接口:Con巾guration接口負(fù)責(zé)配置并啟動 Hibernate ,創(chuàng)建SessionFactory 對象。在Hibernate 的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory 對象。 Transaction 接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。 Query和Criteria 接口 :Query和Criteria 接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動力柜施工合同范本
- 公用商業(yè)裝修合同范本
- 包裝供應(yīng)合同范本
- app合伙合同范本
- 以房換房合同范本
- 上傳網(wǎng)貸合同范本
- 包材委托加工合同范本文庫
- 2024年日照市某國有企業(yè)招聘考試真題
- 2024年青海海南州教育局招聘高中教師考試真題
- Module 2 public holidays unit 2英文版教學(xué)設(shè)計 2024-2025學(xué)年外研版英語九年級上冊
- 輔警報名登記表
- 初中數(shù)學(xué)競賽試題匯編
- 外研版英語五年級下冊第一單元全部試題
- GB∕Z 27735-2022 野營帳篷
- 培養(yǎng)小學(xué)生課外閱讀興趣課題研究方案
- 部編版四年級語文下冊課程綱要
- 【課件】第二單元第三節(jié)漢族民歌課件-2021-2022學(xué)年高中音樂人音版(2019)必修音樂鑒賞
- 高中人音版必修 音樂鑒賞20人民音樂家課件
- 圓二色譜儀操作規(guī)程培訓(xùn)
- 華文出版社三年級下冊書法教案
- GB_T 30789.3-2014 色漆和清漆 涂層老化的評價 缺陷的數(shù)量和大小以及外觀均勻變化程度的標(biāo)識 第3部分:生銹等級的評定
評論
0/150
提交評論