多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php框架 > 框架設(shè)計(jì) > [置頂] 會(huì)話EJB系列(四)SessionBean事務(wù)管理

[置頂] 會(huì)話EJB系列(四)SessionBean事務(wù)管理

來源:程序員人生   發(fā)布時(shí)間:2015-01-17 09:33:46 閱讀次數(shù):3270次

(上1篇文章中我們介紹了《會(huì)話EJB系列(3)SessionBean生命周期》,本為的主要介紹SessionBean中事務(wù)管理)

 

SessionBean從功能上可以分為兩類:

        第1類:成為EAO:用于封裝底層的實(shí)體和JPA,本質(zhì)上其功能就是DAO。(不需要事務(wù)控制。由于JPA本質(zhì)是對(duì)ORM實(shí)現(xiàn)的封裝。)

        第2類:充當(dāng)業(yè)務(wù)組件:是底層EAO對(duì)象的Facade,系統(tǒng)控制器(如struts中的Action,springMVC中的Controller)將調(diào)用他們的業(yè)務(wù)方法來處理用戶要求。(需要添加事務(wù)控制。由于它代表了1次完全的業(yè)務(wù)邏輯)

  

        EJB的事務(wù)管理機(jī)制依然是建立在JTA事務(wù)基礎(chǔ)之上,因此利用服務(wù)器會(huì)負(fù)責(zé)處理事務(wù)管理的底層細(xì)節(jié)。

        EJB3中仍提供容器管理事務(wù)(CMT)和Bean管理事務(wù)(BMT)兩種,并允許采取Annotation機(jī)制來指定事務(wù)屬性,替換了EJB2中的XML配置文件方式。

 

        對(duì)CMT:容器負(fù)責(zé)決定事務(wù)的邊界:方法開始就是事務(wù)開始,方法結(jié)束就是事務(wù)結(jié)束。

        對(duì)BMT:事務(wù)邊界由開發(fā)人員靈活決定(事務(wù)開始、事務(wù)回滾、事務(wù)結(jié)束)

 

1.容器管理事務(wù)

       CMT:容器負(fù)責(zé)決定事務(wù)的邊界:方法開始就是事務(wù)開始,方法結(jié)束就是事務(wù)結(jié)束。

 

(1)Annotation控制事務(wù)方式

        SessionBean的事務(wù)管理機(jī)制與MDB的事務(wù)管理方式完全1樣,都是通過在Bean上使用@TransactionManagement、        @TransactionAttribute兩個(gè)Annotation來控制的。無需對(duì)該接口代碼進(jìn)行任何改變。

        1) @TransactionManagement,value屬性設(shè)置事務(wù)處理方式:CMT?還是BMT?,如:

                TransactionManagementType.BEAN:指定使用BMT管理事務(wù)

                TransactionManagementType.CONTAINER:指定使用CMT管理事務(wù)

 

        2)@TransactionAttribute,既可以用于修飾SessionBean或MDB 的Bean實(shí)現(xiàn)類,也用于修飾某個(gè)業(yè)務(wù)方法(優(yōu)先),

                 并通過value值,設(shè)置事務(wù)屬性為枚舉類型之1:

 

(2)捕獲‘自定義異常’

          默許,產(chǎn)生系統(tǒng)異常,CMT會(huì)控制事務(wù)回滾;若為自定義異常,不會(huì)回滾。

         但可以,手工控制‘自定義異常’回滾,方式以下:

                  第1種:使用EJBContext的setRollbackOnly(),顯示控制代碼回滾

                  第2種:使用@ApplicationException Annotation,指定rollback屬性為true便可

 

 (3)注意

        CMT意味著容器管理EJB業(yè)務(wù)方法中的事務(wù),因此開發(fā)者不應(yīng)當(dāng)在開發(fā)時(shí),調(diào)用任何開始、結(jié)束事務(wù)的方法

 

2.Bean管理

       對(duì)BMT:事務(wù)邊界由開發(fā)人員靈活決定(事務(wù)開始、事務(wù)回滾、事務(wù)結(jié)束),主要通過UserTransaction來控制事務(wù)。本質(zhì),就是通過編程操作JTA事務(wù)管理器。

(1)EJB的Bean類中獲得UserTransaction對(duì)象的,3種方式:

                第1種:使用@Resource Annotation履行依賴注入

                第2種:通過JNDI查找獲得,如:UserTransaction  ut=(UserTransaction)ctx.lookup("UserTransaction");

                第3種:使用EJBContext的getUserTransaction()方法獲得,如:UserTransaction ut=ctx.getUserTransaction();

 

(2)UserTransaction 中所含方法簡(jiǎn)單解析 (略)      

        

3.對(duì)照CMT和BMT

(1)特點(diǎn)

        CMT(默許):容器負(fù)責(zé)決定事務(wù)的邊界:方法開始就是事務(wù)開始,方法結(jié)束就是事務(wù)結(jié)束。

        BMT:事務(wù)邊界由開發(fā)人員靈活決定(事務(wù)開始、事務(wù)回滾、事務(wù)結(jié)束)  。本質(zhì),通過編程操作JTA事務(wù)管理器。

        通常,EJB容器建議使用CMT事務(wù)管理。

(2)優(yōu)缺點(diǎn)

        BMT優(yōu)點(diǎn):更靈活!開發(fā)者自行決定事務(wù)邊界

        BMT缺點(diǎn):

              1.由于開發(fā)者采取硬編碼方式來實(shí)現(xiàn)事務(wù)管理,不可避免的致使業(yè)務(wù)邏輯和是無邏輯混淆的缺點(diǎn),切難于切換其它管理方式。

              2. 客戶端調(diào)用BMT方法時(shí),會(huì)暫停當(dāng)前已有事務(wù),就制約了組件的復(fù)用

 

(3)BMT有兩種必須存在的場(chǎng)景,和對(duì)應(yīng)的爭(zhēng)議:

        1)開發(fā)者需要為業(yè)務(wù)方法中某段代碼添加事務(wù)。(為什么不將這段代碼抽離?封裝成1個(gè)方法?)

        2)有狀態(tài)SessionBean需要跨方法調(diào)用保護(hù)事務(wù),也就是需要將多個(gè)方法放在1個(gè)事務(wù)中進(jìn)行保護(hù)。(顯示多個(gè)方法組成了1個(gè)完全的業(yè)務(wù)邏輯,為什么不將它們整體封裝成1個(gè)業(yè)務(wù)方法)

 

 4.總結(jié)

        SessionBean中事務(wù)管理,分為兩種:容器管理事務(wù)(CMT)和Bean管理事務(wù)(BMT)

            CMT(默許):容器負(fù)責(zé)決定事務(wù)的邊界:方法開始就是事務(wù)開始,方法結(jié)束就是事務(wù)結(jié)束。

            BMT:事務(wù)邊界由開發(fā)人員靈活決定(事務(wù)開始、事務(wù)回滾、事務(wù)結(jié)束)  。本質(zhì),通過編程操作JTA事務(wù)管理器。

        具體情況具體操作...

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品国产一区二区二三区在线观看 | 日本一区二区视频在线观看 | 国产精品免费αv视频 | 欧美日韩亚洲综合久久久 | 欧美性猛交xxxx免费看 | 国产精品久久久久久搜索 | 久久婷五月综合 | 亚洲成aⅴ人片在线影院八 亚洲成aⅴ人在线观看 | 午夜美女影院 | 久久久久久亚洲精品 | 一级a毛片免费 | 久久精品蜜芽亚洲国产a | 国产成在线观看免费视频成本人 | 国产成人经典三级在线观看 | 亚洲日本一区二区三区 | 国产精品视频分类一区 | 久久91亚洲精品久久91综合 | 最近的中文字幕大全免费8 最近的中文字幕大全免费版 | 欧美抽搐一进一进一出 | 亚洲成年网站在线777 | 国产性生活视频 | 黄色综合 | 国内精品一区二区三区东京 | 久久xx| 91嫩草私人成人亚洲影院 | 久久久久18 | 国产亚洲精品国看不卡 | 亚洲国产精品成 | 色www| 精品一区二区三区中文 | 91福利片 | 五月天开心中文字幕 | 午夜又黄又爽 | 国产精品爽爽影院在线 | 国产一级淫片免费大片 | 国产1区二区 | 伊人久久免费视频 | 亚洲美女色 | 中文字幕永久更新 | 婷婷去我也去 | 亚洲精品456播放 |