亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Spring事務(wù)管理

        2009-01-01 00:00:00
        大眾商務(wù)·下半月 2009年3期

        【摘 要】Spring是一個非?;钴S的開源框架;它是一個機遇IOC和AOP來構(gòu)架多層J2EE系統(tǒng)的框架,Spring不強迫你必須在每一層中必須使用Spring,因為它在模塊化方面做的很好,它允許你根據(jù)自己的需要選擇使用它的某一模塊;他實現(xiàn)了很優(yōu)雅的MVC,對不同的數(shù)據(jù)訪問技術(shù)提供了統(tǒng)一的接口,采用ICO可以很方便的實現(xiàn)對BEAN類的裝配,提供了簡潔的AOP并據(jù)此實現(xiàn)Transcation Managment等等。

        【關(guān)鍵詞】Spring;事務(wù)處理

        中圖分類號:TP391 文獻標(biāo)識碼:A 文章編號:1009-8283(2009)03-0217-01

        1 Spring 框架

        Spring 框架是一個分層架構(gòu),由 7 個定義良好的模塊組成。Spring 模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理 bean 的方式。組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。

        2 Spring特性

        IoCoC就是Inversion of Control。意味著將你設(shè)計好的類交給系統(tǒng)去控制,而不是在你的類內(nèi)部控制。這稱為控制反轉(zhuǎn)。是面向?qū)ο箢I(lǐng)域新興的編程思想;同時這也是Spring的精髓所在。

        Spring IoC,借助于依賴注入設(shè)計模式,使得開發(fā)者不用理會對象自身的生命周期極其關(guān)系,而且能夠改善開發(fā)者對模式的使用。對于一個對象的管理不是什么困難,難就難在對整個對象群的管理。依賴注入可以讓容器管理對象,即“Don’t call me,I will call you”。這樣對象本身的生命周期以及對象之間的關(guān)系就不再讓開發(fā)者費神了。

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

        Spring服務(wù)抽象,借助于各種J2EE API抽象,使得開發(fā)者能夠一致地使用J2EE 技術(shù),而不管具體是使用什么J2EE API,借助于Spring服務(wù)抽象,使代碼大大減少,滿足“更少代碼,更少BUG”的軟件設(shè)計原則。

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

        3 事務(wù)處理

        Spring提供的兩種事務(wù)管理策略可以讓我們很方便的實現(xiàn)事務(wù)的管理,相對于編程序的事務(wù)管理,聲明式的事務(wù)更具優(yōu)勢,Spring使用AOP的機制自動攔截相關(guān)的方法調(diào)用,將大量的事務(wù)管理邏輯從應(yīng)用代碼中分離出來,開發(fā)者無需手動干預(yù)事務(wù)的開始,提交,關(guān)閉操作,一個完整的事務(wù)管理邏輯一經(jīng)定義,幾乎一勞永逸,其效果就如同事務(wù)管理不存在一樣。

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

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

        按照以往的思路來寫代碼,代碼量比較長,而且容易疏忽,忘掉一些try/catch,引發(fā)一些異常無法catch,雖然有時候我們會寫DBTool類,來關(guān)閉這些資源,并且保證在關(guān)閉這些資源時,不向外拋異常,但是這樣做會導(dǎo)致額外的麻煩。

        3.2 編程序事務(wù)管理

        編寫程序的事務(wù)管理可以清楚的定義事務(wù)的邊界,可以實現(xiàn)細粒度的事務(wù)控制,比如你可以通過程序代碼來控制你的事務(wù)何時開始,何時結(jié)束等,與后面介紹的聲明式事務(wù)管理相比,它可以實現(xiàn)細粒度的事務(wù)控制。

        Spring提供了幾個關(guān)于事務(wù)處理的類:TransactionDefinition //事務(wù)屬性定義

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

        PlatformTransactionManager這個是spring提供的用于管理事務(wù)的基礎(chǔ)接口,其下有一個實現(xiàn)的抽象類AbstractPlatformTransactionManager,我們使用的事務(wù)管理類例如DataSourceTransactionManager等都是這個類的子類。

        我們使用編程式的事務(wù)管理流程可能如下:

        (1) 聲明數(shù)據(jù)源。

        (2) 聲明一個事務(wù)管理類,例如:DataSourceTransactionManager,HibernateTransactionManger,JTATransactionManager等

        (3) 在我們的代碼中加入事務(wù)處理代碼:

        TransactionDefinition td = new TransactionDefinition();

        TransactionStatus ts = transactionManager.getTransaction(td);

        try{

        //do sth

        transactionManager.commit(ts);

        }catch(Exception e){transactionManager.rollback(ts);}

        使用Spring提供的事務(wù)模板TransactionTemplate:

        void add()

        {

        transactionTemplate.execute( new TransactionCallback(){

        pulic Object doInTransaction(TransactionStatus ts)

        { //do sth}

        }

        }

        TransactionTemplate也是為我們省去了部分事務(wù)提交、回滾代碼;定義事務(wù)模板時,需注入事務(wù)管理對象。

        3.3 聲明式事務(wù)管理

        如果你并不需要細粒度的事務(wù)控制,你可以使用聲明式事務(wù),在Spring中,你只需要在Spring配置文件中做一些配置,即課將操作納入到事務(wù)管理中,解除了和代碼的耦合,這是對應(yīng)用代碼影響最小的選擇,從這一點再次驗證了Spring關(guān)于的概念。當(dāng)你不需要事務(wù)管理的時候,可以直接從Spring配置文件中移除該設(shè)置。

        Spring的聲明式事務(wù)管理是通過Spring的AOP機制來實現(xiàn)的,對你而言,這一層是隱藏的,使用事務(wù)管理并不侵入你的開發(fā)組件,也就是說,在你的應(yīng)用代碼中并不需要出現(xiàn)任何關(guān)于事務(wù)管理方面的代碼。Spring在運行過程中,會讀取節(jié)點中的配置信息,并執(zhí)行事務(wù)的管理操作。Spring聲明式事務(wù)處理也主要使用了IoC,AOP思想,提供了TransactionInterceptor攔截器和常用的代理類TransactionProxyFactoryBean,可以直接對組件進行事務(wù)代理。

        4 結(jié)束語

        Spring可以簡單的把普通的java class納入事務(wù)管理,聲明性的事務(wù)操作起來也很容易。有了Spring之后,聲明性事務(wù)不再是EJB獨有,我們不必為了獲得聲明性事務(wù)的功能而去忍受EJB帶來的種種不便。Spring還提供了惟一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù)(如JTA或者JDBC)之上提供一個一致的編程模型。

        久久成人永久婷婷99精品| 国产一区视频在线免费观看| 日本高清视频www| 久99久热只有精品国产男同| 黄片在线观看大全免费视频| 亚洲中文字幕人成乱码在线| 欧美国产综合欧美视频| 特级婬片国产高清视频| 国产WW久久久久久久久久| 人妻少妇精品系列一区二区| 大香蕉国产av一区二区三区| 亚洲人成无码区在线观看| 97超级碰碰人妻中文字幕| 国产男女做爰猛烈视频网站| 亚洲免费一区二区三区四区| 中文字幕日本人妻久久久免费| 国产人妖视频一区二区| 亚洲成a人网站在线看| 久久精品av在线视频| 亚洲av成人精品一区二区三区 | 中文亚洲一区二区三区| 国产91传媒一区二区三区| 亚洲国产精品无码中文字 | 免费va国产高清大片在线| 国产色秀视频在线播放| 午夜成人理论无码电影在线播放| 不卡a v无码在线| 手机在线中文字幕av| 亚洲一二三区免费视频| 中文字幕乱偷无码av先锋蜜桃| 欧美午夜精品久久久久久浪潮| 免费在线观看亚洲视频| 99精品国产一区二区三区| 久久久久久国产精品免费免费男同| 东京热久久综合久久88| 大香蕉久久精品一区二区字幕| 亚洲av三级黄色在线观看| 亚洲色欲色欲大片www无码| 福利在线国产| 日本熟妇视频在线中出| 青青草骚视频在线观看|