版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、主流J2EE架構(gòu)說明1.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 框架中。所以,可以很容易地使S
3、pring 框架管理的任何對象支持AOP 。Spring AOP 模塊為基于Spring 的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。通過使用Spring AOP ,不用依賴EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。 Spring DAO :JDBC DAO 抽象層提供了有意義的異常層次結(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 框架插入了若干個ORM 框架,
4、從而提供了ORM 的對象關(guān)系工具,其中包括JDO 、Hibernate 和iBatis SQL Map 。所有這些都遵從Spring 的通用事務(wù)和DAO 異常層次結(jié)構(gòu)。 2.ibatis 架構(gòu)圖 ibatis 是 一個基于 Java 的持久層框架。 iBATIS 提供的持久層框架包括 SQL Maps 和 Data Access Objects ( DAO ),同時還 提供一個利用這個框架開發(fā)的 JPetStore 實例。 ITPUB個人空間 ClH8F&OIBATIS :最大的優(yōu)點是可以有效的控制sql 發(fā)送的數(shù)目,提高數(shù)據(jù)層的執(zhí)行效率!它需要程序員自己去寫sql 語句,不象hibernat
5、e 那樣是完全面向?qū)ο蟮?,自動化的,ibatis 是半自動化的,通過表和對象的映射以及手工書寫的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è)計,團隊的協(xié)作等)。 個人感覺Ibatis 對項目比較有意義的地方在于它小巧靈活,可擴展,封裝了
6、數(shù)據(jù)訪問層(事務(wù),緩存,異常,日志),并提供了DAO 框架支持。 利 用Ibatis 我們可以做到代碼和sql 的分離,只要sql 能夠解決的問題,Ibatis 就能幫我們較容易的解決,同時也使我們的項目對某一框架的依賴性變?。ㄒ驗镮batis 是非侵入性的)。這將極大的降低項目風險,減少解決復(fù)雜問題的時間,使項目的維護變得簡單。 Ibatis 對于應(yīng)用的修改,調(diào)試,擴充和維護將會變得容易自然。修改時,我們主要修改的是代 表模型的實體對象,xml 配置文件中的sql ,和/ 或配置文件的ResultMap (很多時候是不需要的)。同時,sql 和代碼分離,我們不用在代碼的StringBuffe
7、r 的append 方法之間尋找需要修改的sql 。配置文件中的sql 便利了我們的調(diào)試和對sql 的評審及以后的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 與XM
8、L 等標準技術(shù) , 以及Jakarta Commons 的一些類庫。Struts 有一組相互協(xié)作的類(組件)、Serlvet 以及jsp tag lib 組成?;趕truts 構(gòu)架的web 應(yīng)用程序基本上符合JSP Model2 的設(shè)計標準,可以說是一個傳統(tǒng)MVC 設(shè)計模式的一種變化類型。 Struts 有 其自己的控制器(Controller ),同時整合了其他的一些技術(shù)去實現(xiàn)模型層(Model )和視圖層(View )。在模型層,Struts 可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,如JDBC / EJB ,以及其它第三方類庫,如Hibernate / iBATIS ,或者Object Rel
9、ational Bridge( 對象關(guān)系橋) 。在視圖層,Struts 能夠與JSP ,包括JSTL 與JSF ,以及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
10、.xml 文件配置控制器。 業(yè)務(wù)邏輯 業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。就Struts 而言,這是通過作為實際業(yè)務(wù)邏輯“ 瘦” 包裝的Action 類完成的。 Model (模型)的 狀態(tài) 模型表示應(yīng)用程序的狀態(tài)。業(yè)務(wù)對象更新應(yīng)用程序的狀態(tài)。ActionForm. bean 在會話級或請求級表示模型的狀態(tài),而不是在持久級。JSP 文件使用JSP 標記讀取來自ActionForm. bean 的信息。 View (視圖) 視圖就是一個JSP 文件。其中沒有流程邏輯,沒有業(yè)務(wù)邏輯,也沒有模型信息- 只有標記。標記是使Struts 有別于其他框架(如Velocity )的因素之一 4
11、.structs2 架構(gòu)圖 Struts 2 相 對于Struts 1.X ,將實現(xiàn)用戶業(yè)務(wù)邏輯(Action )同Servlet API 分離開,這種分離機制,是采用了攔截器或者攔截器棧(攔截器鏈)。攔截器是Struts 2 的核心內(nèi)容之一。 Struts 2 內(nèi) 建了多個攔截器和攔截器棧(由多個攔截器形成的攔截器鏈),將用戶的Web 請求進行攔截處理,從而提供了更加豐富的功能,例如數(shù)據(jù)類型轉(zhuǎn)換、國際化、文件上傳等。 5.Hibernate 架構(gòu)圖 Hibernate 是 一個開放源代碼 的 對象關(guān)系映射框架,它對JDBC 進行了非常輕量級的對象封裝,使得Java 程序員可以隨心所欲的使用對
12、象編程思維來操縱數(shù)據(jù)庫。Hibernate 可以應(yīng)用在任何使用JDBC 的場合,既可以在Java 的客戶端程序使用,也可以在Servlet/JSP 的Web 應(yīng)用中使用,最具革命 意義的是,Hibernate 可以在應(yīng)用EJB 的J2EE 架構(gòu)中取代CMP ,完成數(shù)據(jù)持久化的重任。 Hibernate 的核心接口一共有5 個,分別為:Session 、SessionFactory 、Transaction 、Query 和Configuration 。這5 個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務(wù)控制。下面對這五個核心接口分別加以介紹。 Ses
13、sion 接 口:Session 接口負責執(zhí)行被持久化對象的CRUD 操作(CRUD 的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL 語句。) 。但需要注意的是Session 對象是非線程安全的。同時,Hibernate 的session 不同于JSP 應(yīng)用中的HttpSession 。這里當使用session 這個術(shù)語時,其實指的是Hibernate 中的session ,而 以后會將HttpSesion 對象稱為用戶session 。 SessionFactory 接口:SessionFactory 接口負責初 始化Hibernate 。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session
14、 對象。這里用到了工廠模式。需要注意的是SessionFactory 并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory 就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory 。 Configuration 接口:Configuration 接口負責配置并啟動Hibernate ,創(chuàng)建SessionFactory 對象。在Hibernate 的啟動的過程中,Configuration 類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory 對象。 Transaction 接 口:Transaction 接口負責事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。 Query 和Criteria 接口:Query 和Criteria 接口負責執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL 語言或SQL
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026春招:醫(yī)療器械筆試題及答案
- 2026年消防設(shè)施的遠程監(jiān)控與控制設(shè)計
- 賀新郎辛棄疾課件
- 2026春招:無人機組裝測試真題及答案
- 貫標培訓課件
- 貨運公司安全培訓簡報課件
- 消化系統(tǒng)疾病診斷與治療新方法
- 醫(yī)療大數(shù)據(jù)在公共衛(wèi)生事件預(yù)警與應(yīng)對中的應(yīng)用
- 醫(yī)院醫(yī)療設(shè)備購置規(guī)劃總結(jié)
- 2026年渤海船舶職業(yè)學院高職單招職業(yè)適應(yīng)性考試備考試題有答案解析
- 小學二年級上冊期中考試數(shù)學試卷含答案(共3套-人教版)
- JTG D30-2015 公路路基設(shè)計規(guī)范
- 單位委托物業(yè)管理合同范本
- 訪問控制與審計監(jiān)控課件
- 寶石燒制瓷器工藝
- 閑置資產(chǎn)盤活利用方案
- 12345工作總結(jié)個人
- 高中地理第一學期期中試卷湘教版必修1
- 測定直流電源的參數(shù)并研究其輸出特性
- 2021年云南公務(wù)員考試行測試題及答案
- 如何撰寫優(yōu)秀的歷史教學設(shè)計
評論
0/150
提交評論