1.Spring 架構圖
Spring 是一個開源 框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為J2EE 應用程序開發提供集成的框架。Spring 框架的功能可以用在任何J2EE 服務器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支持不綁定到特定J2EE 服務的可重用業務和數據訪問對象。這樣的對象可以在不同J2EE 環境(Web或EJB )、獨立應用程序、測試環境之間重用。
組成Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。每個模塊的功能如下:
2.ibatis 架構圖
ibatis 是一個基於 Java 的持久層框架。 iBATIS 提供的持久層框架包括 SQL Maps 和DataAccess Objects ( DAO ),同時還提供一個利用這個框架開發的 JPetStore 實例。
IBATIS :最大的優點是可以有效的控制sql 發送的數目,提高數據層的執行效率!它需要程序員自己去寫sql 語句,不象hibernate那樣是完全面向對象的,自動化的,ibatis 是半自動化的,通過表和對象的映射以及手工書寫的sql 語句,能夠實現比hibernate 等更高的查詢效率。
Ibatis 只是封裝了數據訪問層,替我們做了部分的對象關系映射。但代價是必須要寫xml配 置文件,相對於Hibernate 還要寫很多sql 。Hibernate 通過工具直接從數據庫模式生成實體類和基本的配置文件,而且大部分情況下不需要我們寫sql ,會較大的提升開發效率。但這些也有很多的局限性,尤其是對環境的要求較高(數據庫設計,對象設計,團隊的協作等)。 個人感覺Ibatis 對項目比較有意義的地方在於它小巧靈活,可擴展,封裝了數據訪問層(事務,緩存,異常,日志),並提供了DAO 框架支持。
利用Ibatis 我們可以做到代碼和sql 的分離,只要sql 能夠解決的問題,Ibatis 就能幫我們較容易的解決,同時也使我們的項目對某一框架的依賴性變小(因為Ibatis 是非侵入性的)。這將極大的降低項目風險,減少解決復雜問題的時間,使項目的維護變得簡單。
Ibatis 對於應用的修改,調試,擴充和維護將會變得容易自然。修改時,我們主要修改的是代表模型的實體對象,xml 配置文件中的sql ,和/ 或配置文件的ResultMap (很多時候是不需要的)。同時,sql 和代碼分離,我們不用在代碼的StringBuffer 的append 方法之間尋找需要修改的sql 。配置文件中的sql 便利了我們的調試和對sql 的評審及以後的sql 重用。
3.struts1 架構圖
Struts 是Apache 基金會Jakarta 項目組的一個Open Source 項目,它采用MVC 模式,能夠很好地幫助java 開發者利用J2EE 開發Web 應用。和其他的java 架構一樣,Struts 也是面向對象設計,將MVC 模式” 分離顯示邏輯和業務邏輯” 的能力發揮得淋漓盡致。Structs 框架的核心是一個彈性的控制層,基於如Java Servlets ,JavaBeans ,ResourceBundles 與XML 等標准技術,以及Jakarta Commons 的一些類庫。Struts 有一組相互協作的類(組件)、Serlvet 以及jsptag lib 組成。基於struts 構架的web 應用程序基本上符合JSP Model2 的設計標准,可以說是一個傳統MVC 設計模式的一種變化類型。
Struts 有其自己的控制器(Controller ),同時整合了其他的一些技術去實現模型層(Model )和視圖層(View )。在模型層,Struts 可以很容易的與數據訪問技術相結合,如JDBC / EJB ,以及其它第三方類庫,如Hibernate / iBATIS ,或者Object Relational Bridge( 對象關系橋) 。在視圖層,Struts 能夠與JSP ,包括JSTL 與JSF ,以及Velocity 模板,XSLT 與其它表示層技術。
Struts 為每個專業的Web 應用程序做背後的支撐,幫助為你的應用創建一個擴展的開發環境。
Client browser (客戶浏覽器):
來自客戶浏覽器的每個HTTP 請求創建一個事件。Web 容器將返回一個HTTP Response。
Controller (控制器):
控制器接收來自浏覽器的請求,並決定將這個請求發往何處。就Struts 而言,控制器是以servlet 實現的一個命令設計模式。struts-config.xml 文件配置控制器。
Logic 業務邏輯:
業務邏輯更新模型的狀態,並幫助控制應用程序的流程。就Struts 而言,這是通過作為實際業務邏輯“ 瘦” 包裝的Action 類完成的。
Model (模型)的狀態:
模型表示應用程序的狀態。業務對象更新應用程序的狀態。ActionForm. bean 在會話級或請求級表示模型的狀態,而不是在持久級。
View (視圖):
視圖就是一個JSP 文件。其中沒有流程邏輯,沒有業務邏輯,也沒有模型信息,只有標記。標記是使Struts區別於其他模板技術(如Velocity)的因素之一。