優(yōu)秀是一種習(xí)慣

           

          借助 Spring AOP 進(jìn)行事務(wù)管理之一

          當(dāng)使用 spring 的 AOP 為 web 應(yīng)用提供事務(wù)管理服務(wù)時,我們需要指定事務(wù)策略,指定事務(wù)策略的格式如下:

                 1. 傳播行為, 隔離層級, 只讀, +異常, -異常

                 2. 傳播行為必須設(shè)置,其他均可選擇性地設(shè)置,中間以英文逗號分隔,例如:PROPAGATION_REQUIRED,readOnly,-BusinessException, 注意:在 BusinessException 前面加上 - 號表示發(fā)生指定異常時回滾操作,如果加上 + 號則表示發(fā)生指定異常時立即提交操作。

                 3. 如果你沒有指定發(fā)生異常時事務(wù)該怎樣進(jìn)行,那么當(dāng)真的在某個事務(wù)中發(fā)生很嚴(yán)重的異常時它不會回滾事務(wù)的。而這不是我們期望看到的,所以在這里應(yīng)該指定你的應(yīng)用異常(即業(yè)務(wù)邏輯異常)。

          下面結(jié)合一個實例來總結(jié)一下指定事務(wù)策略時需要注意的問題。這個實例模擬一個 HR 系統(tǒng)中非常簡單的一部分業(yè)務(wù)邏輯--新建一個員工信息的同時為其新建一個系統(tǒng)用戶。

          服務(wù)層的代碼:

           

          AnotherEmpService 類源碼

           

          EmployeeDAO 類中的 insert 方法可以正常執(zhí)行成功,故該類的源代碼省略。而在 UserDAO 類中我人為地扔出了一個 Exception 類型的異常,其源碼如下:

          UserDAO 類源碼

           

          聲明式事務(wù)的配置如下:

          相關(guān)配置

           

          也就是說,我們準(zhǔn)備在服務(wù)層進(jìn)行事務(wù)控制,并希望將新建員工、新建用戶這兩個原子性的操作作為一個完整的事務(wù)執(zhí)行。在這里有兩個重要的因素影響著它們能否作為一個完整的事務(wù)而執(zhí)行。下面我以一個表格的形式展示我的測試結(jié)果:

           

           

           

           

           

           

           

           

           

           

           

           

           

          posted on 2009-08-10 11:59 黃土高坡 閱讀(193) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 澄江县| 高安市| 兰州市| 高阳县| 甘孜县| 宣城市| 修文县| 滨海县| 榆社县| 漯河市| 哈巴河县| 邵东县| 深泽县| 鄂托克前旗| 延吉市| 海南省| 青神县| 中西区| 阳泉市| 大名县| 阿城市| 大连市| 旬阳县| 富宁县| 焦作市| 浑源县| 和平县| 浦江县| 山丹县| 会同县| 集安市| 江华| 儋州市| 库尔勒市| 津市市| 白朗县| 同心县| 藁城市| 象山县| 龙口市| 博爱县|