自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

J2EE領(lǐng)域的一些技術(shù)框架結(jié)構(gòu)圖

開發(fā) 后端
Spring 是一個(gè)開源 框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的。框架的主要優(yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為J2EE 應(yīng)用程序開發(fā)提供集成的框架。

1.Spring 架構(gòu)圖

Spring 是一個(gè)開源 框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為J2EE 應(yīng)用程序開發(fā)提供集成的框架。Spring 框架的功能可以用在任何J2EE 服務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring 的核心要點(diǎn)是:支持不綁定到特定J2EE 服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對(duì)象。這樣的對(duì)象可以在不同J2EE 環(huán)境(Web或EJB )、獨(dú)立應(yīng)用程序、測(cè)試環(huán)境之間重用。

組成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)用程序代碼分開。
Spring 上下文:Spring 上下文是一個(gè)配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企業(yè)服務(wù),例如JNDI 、EJB、電子郵件、國(guó)際化、校驗(yàn)和調(diào)度功能。
Spring AOP : 通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何對(duì)象支持AOP 。Spring AOP 模塊為基于Spring 的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過使用Spring AOP ,不用依賴EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。
Spring DAO :JDBC DAO 抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫(kù)供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理,并且極大地降低了需要編寫 的異常代碼數(shù)量(例如打開和關(guān)閉連接)。Spring DAO 的面向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è)框架開發(fā)的 JPetStore 實(shí)例。

 

IBATIS :***的優(yōu)點(diǎn)是可以有效的控制sql 發(fā)送的數(shù)目,提高數(shù)據(jù)層的執(zhí)行效率!它需要程序員自己去寫sql 語句,不象hibernate那樣是完全面向?qū)ο蟮模詣?dòng)化的,ibatis 是半自動(dòng)化的,通過表和對(duì)象的映射以及手工書寫的sql 語句,能夠?qū)崿F(xiàn)比hibernate 等更高的查詢效率。

Ibatis 只是封裝了數(shù)據(jù)訪問層,替我們做了部分的對(duì)象關(guān)系映射。但代價(jià)是必須要寫xml配置文件,相對(duì)于Hibernate 還要寫很多sql 。Hibernate 通過工具直接從數(shù)據(jù)庫(kù)模式生成實(shí)體類和基本的配置文件,而且大部分情況下不需要我們寫sql ,會(huì)較大的提升開發(fā)效率。但這些也有很多的局限性,尤其是對(duì)環(huán)境的要求較高(數(shù)據(jù)庫(kù)設(shè)計(jì),對(duì)象設(shè)計(jì),團(tuán)隊(duì)的協(xié)作等)。 個(gè)人感覺Ibatis 對(duì)項(xiàng)目比較有意義的地方在于它小巧靈活,可擴(kuò)展,封裝了數(shù)據(jù)訪問層(事務(wù),緩存,異常,日志),并提供了DAO 框架支持。

利用Ibatis 我們可以做到代碼和sql 的分離,只要sql 能夠解決的問題,Ibatis 就能幫我們較容易的解決,同時(shí)也使我們的項(xiàng)目對(duì)某一框架的依賴性變?。ㄒ?yàn)镮batis 是非侵入性的)。這將極大的降低項(xiàng)目風(fēng)險(xiǎn),減少解決復(fù)雜問題的時(shí)間,使項(xiàng)目的維護(hù)變得簡(jiǎn)單。

Ibatis 對(duì)于應(yīng)用的修改,調(diào)試,擴(kuò)充和維護(hù)將會(huì)變得容易自然。修改時(shí),我們主要修改的是代表模型的實(shí)體對(duì)象,xml 配置文件中的sql ,和/ 或配置文件的ResultMap (很多時(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 開發(fā)者利用J2EE 開發(fā)Web 應(yīng)用。和其他的java 架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將MVC 模式" 分離顯示邏輯和業(yè)務(wù)邏輯" 的能力發(fā)揮得***。Structs 框架的核心是一個(gè)彈性的控制層,基于如Java Servlets ,JavaBeans ,ResourceBundles 與XML 等標(biāo)準(zhǔn)技術(shù),以及Jakarta Commons 的一些類庫(kù)。Struts 有一組相互協(xié)作的類(組件)、Serlvet 以及jsptag lib 組成。基于struts 構(gòu)架的web 應(yīng)用程序基本上符合JSP Model2 的設(shè)計(jì)標(biāo)準(zhǔn),可以說是一個(gè)傳統(tǒng)MVC 設(shè)計(jì)模式的一種變化類型。

Struts 有其自己的控制器(Controller ),同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層(Model )和視圖層(View )。在模型層,Struts 可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,如JDBC / EJB ,以及其它第三方類庫(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ò)展的開發(fā)環(huán)境。

Client browser (客戶瀏覽器):

來自客戶瀏覽器的每個(gè)HTTP 請(qǐng)求創(chuàng)建一個(gè)事件。Web 容器將返回一個(gè)HTTP Response。

Controller (控制器):

控制器接收來自瀏覽器的請(qǐng)求,并決定將這個(gè)請(qǐng)求發(fā)往何處。就Struts 而言,控制器是以servlet 實(shí)現(xiàn)的一個(gè)命令設(shè)計(jì)模式。struts-config.xml 文件配置控制器。

Logic 業(yè)務(wù)邏輯:

業(yè)務(wù)邏輯更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。就Struts 而言,這是通過作為實(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 文件。其中沒有流程邏輯,沒有業(yè)務(wù)邏輯,也沒有模型信息,只有標(biāo)記。標(biāo)記是使Struts區(qū)別于其他模板技術(shù)(如Velocity)的因素之一。

4.struts2 架構(gòu)圖

Struts 2 相對(duì)于Struts 1.X ,將實(shí)現(xiàn)用戶業(yè)務(wù)邏輯(Action )同Servlet API 分離開,這種分離機(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è)開放源代碼 的對(duì)象關(guān)系映射框架,它對(duì)JDBC 進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java 程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(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è)核心接口在任何開發(fā)中都會(huì)用到。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這五個(gè)核心接口分別加以介紹。

·Session 接口:Session 接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD 操作(CRUD 的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見的SQL語句。) 。但需要注意的是Session 對(duì)象是非線程安全的。同時(shí),Hibernate 的session 不同于JSP 應(yīng)用中的HttpSession 。這里當(dāng)使用session 這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate 中的session ,而 以后會(huì)將HttpSesion 對(duì)象稱為用戶session 。

·SessionFactory 接口:SessionFactory 接口負(fù)責(zé)初 始化Hibernate 。它充當(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)的過程中,Configuration 類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory 對(duì)象。

·Transaction 接口:Transaction 接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。

·Query 和Criteria 接口:Query 和Criteria 接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用HQL 語言或SQL 語句兩種表達(dá)方式。

6.J2EE 架構(gòu)圖

J2EE 是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡(jiǎn)化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。

J2EE 核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE 架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,導(dǎo)致企業(yè)內(nèi)部或外部難以互通的窘境。

 

7.Oracle架構(gòu)圖

原文鏈接:http://blog.csdn.net/fanxiaoqing/article/details/7348522

【編輯推薦】

  1. 探究Java初始化的過程
  2. Java集合框架的知識(shí)總結(jié)
  3. Java與F#的并行程序處理對(duì)比
  4. Java并發(fā)編程之同步互斥問題
  5. Java中String.format的用法
責(zé)任編輯:林師授 來源: fanxiaoqing的博客
相關(guān)推薦

2009-07-02 13:58:29

JSP和J2EE

2009-06-23 15:52:55

J2EE學(xué)習(xí)開源項(xiàng)目

2011-04-18 17:28:58

J2EE

2009-06-22 17:20:33

J2EE框架

2009-06-22 17:38:05

J2EE框架

2009-06-18 16:13:14

J2EE開發(fā)

2009-06-10 14:10:23

J2EE學(xué)習(xí)J2EE是什么

2011-11-25 14:59:36

JavaJ2EE框架

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護(hù)

2009-06-23 08:06:46

J2EE體系架構(gòu)J2EE模型J2EE設(shè)計(jì)模式

2010-03-01 10:25:51

J2EE

2009-06-23 16:48:26

J2EE常見問題J2EE平臺(tái)

2009-06-19 10:09:00

J2EE開發(fā)框架

2009-06-11 17:06:11

J2EE歷史Java EE概述

2011-05-20 09:56:15

J2EE

2012-01-17 10:22:07

JavaJ2EEJBoss

2009-06-22 17:05:41

Java EEJava企業(yè)應(yīng)用

2009-06-10 13:30:32

J2EE四層模型客戶層Web層

2009-06-22 16:21:02

J2EE線程

2009-06-22 17:32:25

J2EE平臺(tái)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)