




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、J2EE 領(lǐng)域的一些技術(shù)框架結(jié)構(gòu)圖1.Spring 架構(gòu)圖 Spring 是一個(gè)開(kāi)源 框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。Spring 框架的功能可以用在任何J2EE 服務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring 的核心要點(diǎn)是:支持不綁定到特定J2EE 服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象。這樣的對(duì)象可以在不同J2EE 環(huán)境(Web或EJB )、獨(dú)立應(yīng)用程序、測(cè)試環(huán)境之間重
2、用。組成Spring 框架的每個(gè)模塊(或組件)都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)。每個(gè)模塊的功能如下:· 核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要組件是BeanFactory ,它是工廠模式的實(shí)現(xiàn)。BeanFactory 使用控制反轉(zhuǎn) (IOC ) 模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開(kāi)。· Spring 上下文:Spring 上下文是一個(gè)配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企業(yè)服務(wù),例如JNDI 、EJB、電子郵件、國(guó)際化、校驗(yàn)和調(diào)度功能。· Spring AOP : 通
3、過(guò)配置管理特性,Spring AOP 模塊直接將面向方面的編程功 能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何對(duì)象支持AOP 。Spring AOP 模塊為基于Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過(guò)使用Spring AOP ,不用依賴EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。· Spring DAO :JDBC DAO 抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來(lái)管理異常處理和不同數(shù)據(jù)庫(kù)供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理,并且極大地降低了需要編寫 的異常代碼數(shù)量(例如打開(kāi)和關(guān)閉連接)。Spring DA
4、O 的面向JDBC 的異常遵從通用的DAO 異常層次結(jié)構(gòu)。· Spring ORM :Spring 框架插入了若干個(gè)ORM 框架,從而提供了ORM 的對(duì)象關(guān)系工具,其中包括JDO 、Hibernate 和iBatisSQLMap 。所有這些都遵從Spring 的通用事務(wù)和DAO 異常層次結(jié)構(gòu)。2.ibatis 架構(gòu)圖ibatis 是一個(gè)基于 Java 的持久層框架。 iBATIS 提供的持久層框架包括 SQL Maps 和DataAccess Objects ( DAO ),同時(shí)還提供一個(gè)利用這個(gè)框架開(kāi)發(fā)的 JPetStore 實(shí)例。IBATIS :最大的優(yōu)點(diǎn)是可
5、以有效的控制sql 發(fā)送的數(shù)目,提高數(shù)據(jù)層的執(zhí)行效率!它需要程序員自己去寫sql 語(yǔ)句,不象hibernate那樣是完全面向?qū)ο蟮模詣?dòng)化的,ibatis 是半自動(dòng)化的,通過(guò)表和對(duì)象的映射以及手工書(shū)寫的sql 語(yǔ)句,能夠?qū)崿F(xiàn)比hibernate 等更高的查詢效率。Ibatis 只是封裝了數(shù)據(jù)訪問(wèn)層,替我們做了部分的對(duì)象關(guān)系映射。但代價(jià)是必須要寫xml配 置文件,相對(duì)于Hibernate 還要寫很多sql 。Hibernate 通過(guò)工具直接從數(shù)據(jù)庫(kù)模式生成實(shí)體類和基本的配置文件,而且大部分情況下不需要我們寫sql ,會(huì)較大的提升開(kāi)發(fā)效率。但這些也有很多的局限性,尤其是對(duì)環(huán)境的要求較高(數(shù)據(jù)庫(kù)設(shè)計(jì)
6、,對(duì)象設(shè)計(jì),團(tuán)隊(duì)的協(xié)作等)。 個(gè)人感覺(jué)Ibatis 對(duì)項(xiàng)目比較有意義的地方在于它小巧靈活,可擴(kuò)展,封裝了數(shù)據(jù)訪問(wèn)層(事務(wù),緩存,異常,日志),并提供了DAO 框架支持。利用Ibatis 我們可以做到代碼和sql 的分離,只要sql 能夠解決的問(wèn)題,Ibatis 就能幫我們較容易的解決,同時(shí)也使我們的項(xiàng)目對(duì)某一框架的依賴性變?。ㄒ?yàn)镮batis 是非侵入性的)。這將極大的降低項(xiàng)目風(fēng)險(xiǎn),減少解決復(fù)雜問(wèn)題的時(shí)間,使項(xiàng)目的維護(hù)變得簡(jiǎn)單。Ibatis 對(duì)于應(yīng)用的修改,調(diào)試,擴(kuò)充和維護(hù)將會(huì)變得容易自然。修改時(shí),我們主要修改的是代表模型的實(shí)體對(duì)象,xml 配置文件中的sql ,和/ 或配置文件的Result
7、Map (很多時(shí)候是不需要的)。同時(shí),sql 和代碼分離,我們不用在代碼的StringBuffer 的append 方法之間尋找需要修改的sql 。配置文件中的sql 便利了我們的調(diào)試和對(duì)sql 的評(píng)審及以后的sql 重用。3.struts1 架構(gòu)圖Struts 是Apache 基金會(huì)Jakarta 項(xiàng)目組的一個(gè)Open Source 項(xiàng)目,它采用MVC 模式,能夠很好地幫助java 開(kāi)發(fā)者利用J2EE 開(kāi)發(fā)Web 應(yīng)用。和其他的java 架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將MVC 模式” 分離顯示邏輯和業(yè)務(wù)邏輯” 的能力發(fā)揮得淋漓盡致。Structs 框架的核心是一個(gè)彈性的控制層,基
8、于如Java Servlets ,JavaBeans ,ResourceBundles 與XML 等標(biāo)準(zhǔn)技術(shù),以及Jakarta Commons 的一些類庫(kù)。Struts 有一組相互協(xié)作的類(組件)、Serlvet 以及jsptag lib 組成?;趕truts 構(gòu)架的web 應(yīng)用程序基本上符合JSP Model2 的設(shè)計(jì)標(biāo)準(zhǔn),可以說(shuō)是一個(gè)傳統(tǒng)MVC 設(shè)計(jì)模式的一種變化類型。Struts 有其自己的控制器(Controller ),同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層(Model )和視圖層(View )。在模型層,Struts 可以很容易的與數(shù)據(jù)訪問(wèn)技術(shù)相結(jié)合,如JDBC / EJB ,以
9、及其它第三方類庫(kù),如Hibernate / iBATIS ,或者Object Relational Bridge( 對(duì)象關(guān)系橋) 。在視圖層,Struts 能夠與JSP ,包括JSTL 與JSF ,以及Velocity 模板,XSLT 與其它表示層技術(shù)。Struts 為每個(gè)專業(yè)的Web 應(yīng)用程序做背后的支撐,幫助為你的應(yīng)用創(chuàng)建一個(gè)擴(kuò)展的開(kāi)發(fā)環(huán)境。Client browser (客戶瀏覽器):來(lái)自客戶瀏覽器的每個(gè)HTTP 請(qǐng)求創(chuàng)建一個(gè)事件。Web 容器將返回一個(gè)HTTP Response。· Controller (控制器):控制器接收來(lái)自瀏覽器的請(qǐng)求,并決定將這個(gè)請(qǐng)求發(fā)往何處。就St
10、ruts 而言,控制器是以servlet 實(shí)現(xiàn)的一個(gè)命令設(shè)計(jì)模式。struts-config.xml 文件配置控制器。· Logic 業(yè)務(wù)邏輯:業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。就Struts 而言,這是通過(guò)作為實(shí)際業(yè)務(wù)邏輯“ 瘦” 包裝的Action 類完成的。· Model (模型)的狀態(tài):模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對(duì)象更新應(yīng)用程序的狀態(tài)。ActionForm. bean 在會(huì)話級(jí)或請(qǐng)求級(jí)表示模型的狀態(tài),而不是在持久級(jí)。· View (視圖):視圖就是一個(gè)JSP 文件。其中沒(méi)有流程邏輯,沒(méi)有業(yè)務(wù)邏輯,也沒(méi)有模型信息,只有標(biāo)記。標(biāo)記是使Stru
11、ts區(qū)別于其他模板技術(shù)(如Velocity)的因素之一。4.struts2 架構(gòu)圖Struts 2 相對(duì)于Struts 1.X ,將實(shí)現(xiàn)用戶業(yè)務(wù)邏輯(Action )同Servlet API 分離開(kāi),這種分離機(jī)制,是采用了攔截器或者攔截器棧(攔截器鏈)。攔截器是Struts 2 的核心內(nèi)容之一。Struts 2 內(nèi)建了多個(gè)攔截器和攔截器棧(由多個(gè)攔截器形成的攔截器鏈),將用戶的Web 請(qǐng)求進(jìn)行攔截處理,從而提供了更加豐富的功能,例如數(shù)據(jù)類型轉(zhuǎn)換、國(guó)際化、文件上傳等。5.Hibernate 架構(gòu)圖Hibernate 是一個(gè)開(kāi)放源代碼 的 對(duì)象關(guān)系映射框架,它對(duì)JDBC 進(jìn)行了非常輕量級(jí)
12、的對(duì)象封裝,使得Java 程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate 可以應(yīng)用在任何使用JDBC 的場(chǎng)合,既可以在Java 的客戶端程序使用,也可以在Servlet/JSP 的Web 應(yīng)用中使用,最具革命 意義的是,Hibernate 可以在應(yīng)用EJB 的J2EE 架構(gòu)中取代CMP ,完成數(shù)據(jù)持久化的重任。Hibernate 的核心接口一共有5 個(gè),分別為:Session 、SessionFactory、Transaction 、Query和Configuration 。這5 個(gè)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控
13、制。下面對(duì)這五個(gè)核心接口分別加以介紹。·Session 接口:Session 接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD 操作(CRUD 的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句。) 。但需要注意的是Session 對(duì)象是非線程安全的。同時(shí),Hibernate 的session 不同于JSP 應(yīng)用中的HttpSession 。這里當(dāng)使用session 這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的是Hibernate 中的session ,而 以后會(huì)將HttpSesion 對(duì)象稱為用戶session 。·SessionFactory 接口:SessionFactory 接口負(fù)責(zé)初 始化Hibe
14、rnate 。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session 對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory 并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory 就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory 。·Configuration 接口:Configuration 接口負(fù)責(zé)配置并啟動(dòng)Hibernate ,創(chuàng)建SessionFactory 對(duì)象。在Hibernate 的啟動(dòng)的過(guò)程中,Configuration 類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory 對(duì)象。·Transaction 接口:Transaction 接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開(kāi)發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。·Query 和Criteria 接口:Query 和Criteria 接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用H
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 華科版五年級(jí)信息技術(shù)課件
- 海南省小升初數(shù)學(xué)試卷
- 懷化市高三聯(lián)考數(shù)學(xué)試卷
- 濟(jì)南初三中考數(shù)學(xué)試卷
- 健康管理學(xué)概論課件
- 2024-2030年中國(guó)浙江省房地產(chǎn)行業(yè)市場(chǎng)調(diào)查研究及投資前景展望報(bào)告
- 中國(guó)香熏爐行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 中國(guó)櫸木行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 2024年中國(guó)金屬鈧行業(yè)市場(chǎng)調(diào)查報(bào)告
- 2025年中國(guó)礦用架空乘人裝置行業(yè)市場(chǎng)調(diào)研及投資規(guī)劃建議報(bào)告
- 2025年項(xiàng)目管理專業(yè)資格考試試題及答案
- 非公企業(yè)黨建培訓(xùn)課件
- 2025區(qū)域型變電站智能巡視系統(tǒng)技術(shù)規(guī)范
- 汛期公交安全課件
- 環(huán)境影響管理方案(3篇)
- 財(cái)務(wù)報(bào)表編制與審核合同模板
- 上海閔行區(qū)教育系統(tǒng)招聘實(shí)驗(yàn)員考試真題2024
- 建設(shè)部建設(shè)工程重大質(zhì)量安全事故應(yīng)急預(yù)案
- 2025年中航油招聘筆試參考題庫(kù)附帶答案詳解
- 2024年中國(guó)中高端電子鋁箔行業(yè)市場(chǎng)調(diào)查報(bào)告
- DB54∕T 0275-2023 民用建筑節(jié)能技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論