常見Struts、Hibernate、Spring、J2EE、ibatis、Oracle等開發架構架構圖及其簡介

來源:互聯網
上載者:User

標籤:blog   http   io   ar   使用   java   sp   for   strong   

 

各種系統架構圖及其簡介

 

轉載請保留出處,不勝人生一場醉匯總。

以下文字和架構圖均在本人相關係統設計和架構方案中有所應用。

原文出處:http://space.itpub.net/6517/viewspace-609654

 

1.Spring架構圖

 Spring 是一個開源架構,是為瞭解決公司專屬應用程式程式開發複雜性而建立的。架構的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為 J2EE 應用程式開發提供整合的架構。Spring 架構的功能可以用在任何 J2EE 伺服器中,大多數功能也適用於不受管理的環境。Spring 的核心要點是:支援不綁定到特定 J2EE 服務的可重用業務和Data Access Objects。這樣的對象可以在不同 J2EE 環境 (Web 或 EJB)、獨立應用程式、測試環境之間重用。

 

組成 Spring 架構的每個模組(或組件)都可以單獨存在,或者與其他一個或多個模組聯合實現。每個模組的功能如下:

  • 核心容器:核心容器提供 Spring 架構的準系統。核心容器的主要組件是 BeanFactory,它是原廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程式的配置和依賴性規範與實際的應用程式代碼分開。
  • Spring 上下文:Spring 上下文是一個設定檔,向 Spring 架構提供上下文資訊。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校正和調度功能。
  • Spring AOP: 通過組態管理特性,Spring AOP 模組直接將面向方面的編程功能整合到了 Spring 架構中。所以,可以很容易地使 Spring 架構管理的任何對象支援 AOP。Spring AOP 模組為基於Spring 的應用程式中的對象提供了交易管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性交易管理整合到應用程式中。
  • Spring DAO:JDBC DAO 抽象層提供了有意義的異常階層,可用該結構來管理異常處理和不同資料庫供應商拋出的錯誤訊息。異常階層簡化了錯誤處理,並且極大地降低了需要編寫 的異常代碼數量(例如開啟和關閉串連)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常階層。
  • Spring ORM:Spring 架構插入了若干個 ORM 架構,從而提供了 ORM 的對象關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常階層。

 

2.ibatis架構圖

ibatis是一個基於Java的持久層架構。iBATIS提供的持久層架構套件括SQL Maps和Data Access 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.structs1架構圖

Struts是Apache 基金會Jakarta 項目組的一個Open Source 項目,它採用MVC模式,能夠很好地協助java 開發人員利用J2EE開發Web應用。和其他的java架構一樣,Struts 也是物件導向設計,將MVC模式"分離顯示邏輯和商務邏輯"的能力發揮得淋漓盡致。Structs 架構的核心是一個彈性的控制層,基於如 Java Servlets,JavaBeans,ResourceBundles與XML等標準技術,以及 Jakarta Commons 的一些類庫。Struts有一組相互協作的類(組件)、Serlvet以及jsp tag 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 響應作出響應。

?  Controller(控制器)

控制器接收來自瀏覽器的請求,並決定將這個請求發往何處。就 Struts 而言,控制器是以 servlet 實現的一個命令設計模式。 struts-config.xml 檔案配置控制器。

?  商務邏輯

商務邏輯更新模型的狀態,並協助控制應用程式的流程。就 Struts 而言,這是通過作為實際商務邏輯“瘦”封裝的 Action 類完成的。

?  Model(模型)的狀態

模型表示應用程式的狀態。業務對象更新應用程式的狀態。ActionForm. bean 在會話級或請求級表示模型的狀態,而不是在持久級。JSP 檔案使用 JSP 標記讀取來自 ActionForm. bean 的資訊。

?  View(視圖)

視圖就是一個 JSP 檔案。其中沒有流程邏輯,沒有商務邏輯,也沒有模型資訊 -- 只有標記。標記是使 Struts 有別於其他架構(如 Velocity)的因素之一

 

4.structs2架構圖

Struts 2相對於Struts 1.X,將實現使用者商務邏輯(Action)同Servlet API分離開,這種分離機制,是採用了攔截器或者攔截器棧(攔截器鏈)。攔截器是Struts 2的核心內容之一。

Struts 2內建了多個攔截器和攔截器棧(由多個攔截器形成的攔截器鏈),將使用者的Web請求進行攔截處理,從而提供了更加豐富的功能,例如資料類型轉換、國際化、檔案上傳等。

 

5.Hibernate架構圖

Hibernate是一個開放原始碼的對象關係映射架構,它對JDBC進行了非常輕量級的對象封裝,使得Java程式員可以隨心所欲的使用對象編程思維來 操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命 意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。

 

  Hibernate的核心介面一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心介面在任何開發中都會用到。通過這些介面,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心介面分別加以介紹。

·Session介面:Session介面負責執行被持久化對象的CRUD操作 (CRUD的任務是完成與資料庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非安全執行緒的。同時,Hibernate的 session不同於JSP應用中的HttpSession。這裡當使用session這個術語時,其實指的是Hibernate中的session,而 以後會將HttpSesion對象稱為使用者session。

·SessionFactory介面:SessionFactory介面負責初 始化Hibernate。它充當資料存放區源的代理,並負責建立Session對象。這裡用到了原廠模式。需要注意的是SessionFactory並不是 輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個資料庫時,可以為每個資料庫指定一個 SessionFactory。

·Configuration介面:Configuration介面負責配置並啟動Hibernate,建立SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的執行個體首先定位映射文檔位置、讀取配置,然後建立SessionFactory對象。

·Transaction介面:Transaction介面負責事務相關的操作。它是可選的,開發人員也可以設計編寫自己的底層交易處理代碼。

·Query和Criteria介面:Query和Criteria介面負責執行各種資料庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。

 

6.J2EE架構圖

J2EE是一套全然不同於傳統應用開發的技術架構,包含許多組件,主要可簡化且規範應用系統的開發與部署,進而提高可移植性、安全與再用價值。

J2EE核心是一組技術規範與指南,其中所包含的各類組件、服務架構及技術層次,均有共通的標準及規格,讓各種依循J2EE架構的不同平台之間,存在良好的相容性,解決過去企業後端使用的資訊產品彼此之間無法相容,導致企業內部或外部難以互連的窘境。

 

 

7.Oracle架構圖

 

常見Struts、Hibernate、Spring、J2EE、ibatis、Oracle等開發架構架構圖及其簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.