下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025江西建筑安全員知識(shí)題庫及答案
- 2025年河北省安全員知識(shí)題庫及答案
- 廣州珠江職業(yè)技術(shù)學(xué)院《電視節(jié)目編輯》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025江西省建筑安全員C證考試(專職安全員)題庫附答案
- 廣州應(yīng)用科技學(xué)院《人居環(huán)境設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025湖南省建筑安全員C證考試(專職安全員)題庫及答案
- 施工合同條款修改版
- 2025江蘇省安全員B證考試題庫附答案
- 2025山東建筑安全員A證考試題庫
- 中醫(yī)養(yǎng)生之道(講座)
- GB/T 22517.2-2024體育場(chǎng)地使用要求及檢驗(yàn)方法第2部分:游泳場(chǎng)地
- DB2305T 024-2024 關(guān)防風(fēng)栽培技術(shù)規(guī)程
- 年產(chǎn)500t o-甲基-n-硝基異脲技改項(xiàng)目可研報(bào)告
- 光伏項(xiàng)目居間服務(wù)合同協(xié)議書
- 酒店英語會(huì)話(第六版)教案 unit 1 Room Reservations
- 2024至2030年中國蔬菜種植行業(yè)市場(chǎng)全景監(jiān)測(cè)及投資策略研究報(bào)告
- 2024旅行社免責(zé)協(xié)議書模板范本
- 2024汽車行業(yè)社媒營銷趨勢(shì)【微播易CAA中國廣告協(xié)會(huì)】-2024-數(shù)字化
- 2022-2023學(xué)年教科版五年級(jí)科學(xué)上冊(cè)期末復(fù)習(xí)資料
- DL∕T 2558-2022 循環(huán)流化床鍋爐基本名詞術(shù)語
- 教師進(jìn)企業(yè)實(shí)踐日志
評(píng)論
0/150
提交評(píng)論