下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Spring框架的事務(wù)管理應(yīng)用分析摘 要 介紹了J2EE平臺上Java Web開發(fā)的Spring框架的原理和特性,對其事務(wù)管理方面的應(yīng)用進(jìn)行了分析。關(guān)鍵詞 Spring; J2EE; 控制反轉(zhuǎn); 事務(wù)處理引 言在軟件開發(fā)中出現(xiàn)過各種各樣的框架,開源軟件的興起,使得各種各樣的框架紛紛出現(xiàn),例如,Apache組織下就擁有諸多的框架類產(chǎn)品??蚣芫褪且唤M協(xié)同工作的類,它們?yōu)樘囟愋偷能浖?gòu)筑了一個可重用的設(shè)計(jì)。然而,傳統(tǒng)的框架使得應(yīng)用程序組件過分依賴于框架中的類,這種耦合度的提高降低了組件的復(fù)用性。Spring框架的出現(xiàn),使得組件之間更松散的耦合成為了可能。Spring框架簡介Spring框架是一個2
2、003年2月才出現(xiàn)的開源項(xiàng)目,該開源項(xiàng)目起源自Rod Johnson在2002年末出版的Expert One-on-One J2EE Design and Development一書中的基礎(chǔ)性代碼。在該書中,Rod Johnson倡導(dǎo)J2EE實(shí)用主義的設(shè)計(jì)思想,而Spring框架正是這一思想的更全面和具體的實(shí)現(xiàn)。Spring框架由一個容器,一個配置和組織組件的框架,和一組內(nèi)置的為事務(wù)、持久化和Web用戶接口提供的服務(wù)組成。作為一種輕量級的J2EE框架,Spring提供了一種有效的方式來建立和組織J2EE應(yīng)用程序。1、Spring特性IoC(Inversion of Control;控制反轉(zhuǎn));
3、又稱DI(Dependency Injection;依賴注入);是面向?qū)ο箢I(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容器時只需指出組件需要的對象,在運(yùn)行時Spring的IoC容器會根據(jù)XML配置數(shù)據(jù)提供給它。Spring IoC,借助于依賴注入設(shè)計(jì)模式,使得開發(fā)者不用理會對象自身的生命周期極其關(guān)系,而且能夠改善開發(fā)者對模
4、式的使用。對于一個對象的管理不是什么困難,難就難在對整個對象群的管理。依賴注入可以讓容器管理對象,即“Dont call me, I will call you”。這樣對象本身的生命周期以及對象之間的關(guān)系就不再讓開發(fā)者費(fèi)神了。 Spring AOP,借助于Spring實(shí)現(xiàn)攔截器,開發(fā)者能夠?qū)崿F(xiàn)以聲名方式使用企業(yè)級服務(wù),比如安全性服務(wù)、事務(wù)服務(wù)。AOP 合理的補(bǔ)充了OOP,借助于Spring AOP,開發(fā)者能夠高效的使用J2EE服務(wù)。Spring服務(wù)抽象,借助于各種J2EE API抽象,使得開發(fā)者能夠一致地使用J2EE 技術(shù),而不管具體是使用什么J2EE API,借助于Spring服務(wù)抽象,使代
5、碼大大減少,滿足“更少代碼,更少BUG”的軟件設(shè)計(jì)原則。Spring IoC+Spring AOP+Spring服務(wù)抽象,一起形成Spring,這樣一個有機(jī)體,使構(gòu)建輕量級J2EE成為可能。Spring提供的事務(wù)管理Spring提供的事務(wù)管理可以分為兩類:編程式的和聲明式的。編程式的,比較靈活,但是代碼量大,存在重復(fù)的代碼比較多;聲明式的比編程式的更靈活方便。1、傳統(tǒng)使用JDBC的事務(wù)管理以往使用JDBC進(jìn)行數(shù)據(jù)操作,使用DataSource,從數(shù)據(jù)源中得到Connection,我們知道數(shù)據(jù)源是線程安全的,而連接不是線程安全的,所以對每個請求都是從數(shù)據(jù)源中重新取出一個連接。一般的數(shù)據(jù)源由容器進(jìn)
6、行管理,包括連接池。例如TOMCAT,WEBSPHERE,WEBLOGIC等這些J2EE商業(yè)容器都提供了這個功能。以往的我們使用JDBC在寫代碼時,事務(wù)管理可能會是這樣:Connection conn = null;tryconn = DBConnectionFactory.getConnection;conn.setAutoCommit(false);/do somethingmit(); /commit transcationcatch(Exception e)conn.rollback();finallytryconn.close(); catch(SQLException se) /d
7、o sth./close ResultSet,PreparedStatement,Connection /notice:Maybe ocurr Exception when u close rs,pstmt,conn按照以往的思路來寫代碼,代碼量比較長,而且容易疏忽,忘掉一些try/catch,引發(fā)一些異常無法catch,雖然有時候我們會寫DBTool類,來關(guān)閉這些資源,并且保證在關(guān)閉這些資源時,不向外拋異常,但是這樣做會導(dǎo)致額外的麻煩。2、Spring提供的編程式的事務(wù)處理Spring提供了幾個關(guān)于事務(wù)處理的類:TransactionDefinition /事務(wù)屬性定義TranscationStatus /代表了當(dāng)前的事務(wù),可以提交,回滾。 PlatformTransactionManager這個是spring提供的用于管
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度鐵棚搭建與安全教育培訓(xùn)合同范本4篇
- 2025年度健身房門店承包經(jīng)營合同4篇
- 二零二五年度美容院美容護(hù)膚品代理銷售合同4篇
- 2025年中國北斗系統(tǒng)行業(yè)發(fā)展概況及行業(yè)投資潛力預(yù)測報(bào)告
- 2025年中國鍛造模具行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報(bào)告
- 2025年中國印花紙吸管行業(yè)市場深度分析及投資戰(zhàn)略研究報(bào)告
- 對苯二甲酸項(xiàng)目商業(yè)計(jì)劃書
- 2025年玻璃藝術(shù)品收藏與銷售合同3篇
- 2025年消聲器篩板行業(yè)深度研究分析報(bào)告
- 2025年中國外套行業(yè)市場深度研究及投資戰(zhàn)略規(guī)劃報(bào)告
- 綿陽市高中2022級(2025屆)高三第二次診斷性考試(二診)歷史試卷(含答案)
- 露天礦山課件
- 經(jīng)濟(jì)效益證明(模板)
- 銀行卡凍結(jié)怎么寫申請書
- 果樹蔬菜病害:第一章 蔬菜害蟲
- 借條借款合同帶擔(dān)保人
- 人工地震動生成程序
- 創(chuàng)意綜藝風(fēng)脫口秀活動策劃PPT模板
- SSB變槳系統(tǒng)的基礎(chǔ)知識
- 大五人格量表(revised)--計(jì)分及解釋
- CFA考試(LevelⅠ)歷年真題詳解2015LevelⅠMockExamAfternoonSession
評論
0/150
提交評論