Spring框架的事務(wù)管理應(yīng)用分析_第1頁
Spring框架的事務(wù)管理應(yīng)用分析_第2頁
Spring框架的事務(wù)管理應(yīng)用分析_第3頁
Spring框架的事務(wù)管理應(yīng)用分析_第4頁
Spring框架的事務(wù)管理應(yīng)用分析_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Spring框架的事務(wù)管理應(yīng)用分析摘要介紹了J2EE平臺(tái)上JavaWeb開發(fā)的Spring框架的原理和特性,對(duì)其事務(wù)管理方面的應(yīng)用進(jìn)行了分析。

關(guān)鍵詞Spring;J2EE;掌握反轉(zhuǎn);事務(wù)處理

引言

在軟件開發(fā)中消失過各種各樣的框架,開源軟件的興起,使得各種各樣的框架紛紛消失,例如,Apache組織下就擁有諸多的框架類產(chǎn)品。框架就是一組協(xié)同工作的類,它們?yōu)樘囟愋偷能浖?gòu)筑了一個(gè)可重用的設(shè)計(jì)。然而,傳統(tǒng)的框架使得應(yīng)用程序組件過分依靠于框架中的類,這種耦合度的提高降低了組件的復(fù)用性。Spring框架的消失,使得組件之間更松散的耦合成為了可能。

Spring框架簡介

Spring框架是一個(gè)2022年2月才消失的開源項(xiàng)目,該開源項(xiàng)目起源自RodJohnson在2022年末出版的《ExpertOne-on-OneJ2EEDesignandDevelopment》一書中的基礎(chǔ)性代碼。在該書中,RodJohnson提倡J2EE有用主義的設(shè)計(jì)思想,而Spring框架正是這一思想的更全面和詳細(xì)的實(shí)現(xiàn)。Spring框架由一個(gè)容器,一個(gè)配置和組織組件的框架,和一組內(nèi)置的為事務(wù)、長久化和Web用戶接口供應(yīng)的服務(wù)組成。作為一種輕量級(jí)的J2EE框架,Spring供應(yīng)了一種有效的方式來建立和組織J2EE應(yīng)用程序。

1、Spring特性

IoC(InversionofControl;掌握反轉(zhuǎn));又稱DI(DependencyInjection;依靠注入);是面對(duì)對(duì)象領(lǐng)域新興的編程思想;也是Spring的精髓所在。簡潔地說;IoC就是指程序之間的關(guān)系由容器來掌握;而不是傳統(tǒng)實(shí)現(xiàn)中由程序代碼直接操控。這也就是所謂“掌握反轉(zhuǎn)”的概念所在:掌握權(quán)由應(yīng)用代碼轉(zhuǎn)到外部容器,掌握權(quán)的轉(zhuǎn)移,也就是所謂的反轉(zhuǎn)。IoC將掌握創(chuàng)建的職責(zé)搬進(jìn)了框架中;并把它從應(yīng)用代碼脫離開來。當(dāng)使用Spring的IoC容器時(shí)只需指出組件需要的對(duì)象,在運(yùn)行時(shí)Spring的IoC容器會(huì)依據(jù)XML配置數(shù)據(jù)供應(yīng)給它。

SpringIoC,借助于依靠注入設(shè)計(jì)模式,使得開發(fā)者不用理睬對(duì)象自身的生命周期極其關(guān)系,而且能夠改善開發(fā)者對(duì)模式的使用。對(duì)于一個(gè)對(duì)象的管理不是什么困難,難就難在對(duì)整個(gè)對(duì)象群的管理。依靠注入可以讓容器管理對(duì)象,即“Don’tcallme,Iwillcallyou”。這樣對(duì)象本身的生命周期以及對(duì)象之間的關(guān)系就不再讓開發(fā)者費(fèi)神了。

SpringAOP,借助于Spring實(shí)現(xiàn)攔截器,開發(fā)者能夠?qū)崿F(xiàn)以聲名方式使用企業(yè)級(jí)服務(wù),比如平安性服務(wù)、事務(wù)服務(wù)。AOP合理的補(bǔ)充了OOP,借助于SpringAOP,開發(fā)者能夠高效的使用J2EE服務(wù)。

Spring服務(wù)抽象,借助于各種J2EEAPI抽象,使得開發(fā)者能夠全都地使用J2EE技術(shù),而不管詳細(xì)是使用什么J2EEAPI,借助于Spring服務(wù)抽象,使代碼大大削減,滿意“更少代碼,更少BUG”的軟件設(shè)計(jì)原則。

SpringIoC+SpringAOP+Spring服務(wù)抽象,一起形成Spring,這樣一個(gè)有機(jī)體,使構(gòu)建輕量級(jí)J2EE成為可能。

Spring供應(yīng)的事務(wù)管理

Spring供應(yīng)的事務(wù)管理可以分為兩類:編程式的和聲明式的。編程式的,比較敏捷,但是代碼量大,存在重復(fù)的代碼比較多;聲明式的比編程式的更敏捷便利。

1、傳統(tǒng)使用JDBC的事務(wù)管理

以往使用JDBC進(jìn)行數(shù)據(jù)操作,使用DataSource,從數(shù)據(jù)源中得到Connection,我們知道數(shù)據(jù)源是線程平安的,而連接不是線程平安的,所以對(duì)每個(gè)懇求都是從數(shù)據(jù)源中重新取出一個(gè)連接。一般的數(shù)據(jù)源由容器進(jìn)行管理,包括連接池。例如TOMCAT,WEBSPHERE,WEBLOGIC等這些J2EE商業(yè)容器都供應(yīng)了這個(gè)功能。

以往的我們使用JDBC在寫代碼時(shí),事務(wù)管理可能會(huì)是這樣:

Connectionconn=null;

try{

conn=DBConnectionFactory.getConnection;

conn.setAutoCommit(false);

//dosomething

mit();//committranscation

}catch(Exceptione){

conn.rollback();

}

finally{

try{

conn.close();

}catch(SQLExceptionse){//dosth.}

//closeResultSet,PreparedStatement,Connection

//notice:MaybeocurrExceptionwhenuclosers,pstmt,conn

}

根據(jù)以往的思路來寫代碼,代碼量比較長,而且簡單疏忽,忘掉一些try/catch,引發(fā)一些特別無法catch,雖然有時(shí)候我們會(huì)寫DBTool類,來關(guān)閉這些資源,并且保證在關(guān)閉這些資源時(shí),不向外拋特別,但是這樣做會(huì)導(dǎo)致額外的麻煩。

2、Spring供應(yīng)的編程式的事務(wù)處理

Spring供應(yīng)了幾個(gè)關(guān)于事務(wù)處理的類:TransactionDefinition//事務(wù)屬性定義

TranscationStatus//代表了當(dāng)前的事務(wù),可以提交,回滾。

PlatformTransactionManager這

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論