日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringBoot聲明式事務的簡單運用說明

瀏覽:32日期:2023-04-23 11:33:37

關于事物的基本概念等這里就不介紹了。

Spring聲明式事物的實現,有兩種方式;第一種是配置xml,第二種是使用相關注解(這兩種方式可詳見《程序員成長筆記(一)》的相關章節)。SpringBoot中默認配置了第二種方式,所以,SpringBoot直接使用注解即可。下面介紹SpringBoot通過注解開啟事物的使用。

SpringBoot使用事物的步驟:

第一步:在啟動類上開啟事物支持

提示:

@EnableTransactionManagement注解其實在大多數情況下,不是必須的,因為SpringBoot在

TransactionAutoConfiguration類里為我們自動配置啟用了@EnableTransactionManagement注解。

不過自動啟用該注解有兩個前提條件,分別是:@ConditionalOnBean(PlatformTransactionManager.class)和@ConditionalOnMissingBean(AbstractTransactionManagementConfiguration.class),而一般情況下,這兩個條件都是滿足的,所以一般的,我們在啟動類上寫不寫@EnableTransactionManagement都行。本人這里還是建議寫出來。

第二步:在業務邏輯層接口的實現類中的相關方法上聲明事物

SpringBoot聲明式事務的簡單運用說明

給出Transactional 注解的常用屬性表:

屬性

說明

propagation

事務的傳播行為,默認值為 REQUIRED。

isolation

事務的隔離度,默認值采用 DEFAULT

timeout

事務的超時時間,默認值為-1,不超時。

如果設置了超時時間(單位秒),那么如果超過該時間限制了但事務還沒有完成,則自動回滾事務。

read-only

指定事務是否為只讀事務,默認值為 false;為了忽略那些不需要事務的方法,比如讀取數據,可以設置 read-only 為 true。

rollbackFor

用于指定能夠觸發事務回滾的異常類型,如果有多個異常類型需要指定,各類型之間可以通過逗號分隔。{xxx1.class, xxx2.class,……}

noRollbackFor

拋出 no-rollback-for 指定的異常類型,不回滾事務。{xxx1.class, xxx2.class,……}

……

注意事項:

service實現類(一般不建議在接口上)上添加@Transactional,可以將整個類納入spring事務管理,在每個業務方法執行時都會開啟一個事務,不過這些事務采用相同的管理方式。

Transactional 注解只能應用到 public 可見度的方法上。 如果應用在protected、private或者 package可見度的方法上,也不會報錯,不過事務設置不會起作用。

默認情況下,Transactional 注解的事物所管理的方法中,如果方法拋出運行時異常或error,那么會進行事務回滾;如果方法拋出的是非運行時異常,那么不會回滾。

注:SQL異常屬于檢查異常(有的框架將SQL異常重寫為了運行時異常),但是有時我們寫SQL時,檢查異常并不會提示;而默認情況下,事物對檢查異常不會作出回滾處理。

注:在很多時候,我們除了catch一般的異常或自定義異常外,我們還習慣于catch住Exception異常;然后再拋出Exception異常。但是Exception異常屬于非運行時異常(即:檢查異常),因為默認是運行時異常時事物才進行回滾,那么這種情況下,是不會回滾的。我們可以在@Transacional注解中,通過rollbackFor = {Exception.class} 來解決這個問題。即:設置當Exception異常或Exception的所有任意子類異常時事物會進行回滾。

注:被catch處理了的異常,不會被事物作為判斷依據;如果異常被catch 了,但是又在catch中拋出了新的異常,那么事物會以這個新的異常作 為是否進行回滾的判斷依據。

事務的傳播機制(行為):

事務的傳播行為是指,如果在開始當前事務之前,一個事務上下文已經存在,此時有若干選項可以指定一個事務性方法的執行行為。

即:在執行一個@Transactinal注解標注的方法時,開啟了事務;當該方法還在執行中時,另一個人也觸發了該方法;那么此時怎么算事務呢,這時就可以通過事務的傳播機制來指定處理方式。

在TransactionDefinition定義中包括了如下幾個表示傳播行為的常量:

常量

含義

TransactionDefinition.PROPAGATION_REQUIRED

如果當前存在事務,則加入該事務;如果當前沒有事務,則創建一個新的事務。這是默認值。

TransactionDefinition.PROPAGATION_REQUIRES_NEW

創建一個新的事務,如果當前存在事務,則把當前事務掛起。

TransactionDefinition.PROPAGATION_SUPPORTS

如果當前存在事務,則加入該事務;如果當前沒有事務,則以非事務的方式繼續運行。

TransactionDefinition.PROPAGATION_NOT_SUPPORTED

以非事務方式運行,如果當前存在事務,則把當前事務掛起。

TransactionDefinition.PROPAGATION_NEVER

以非事務方式運行,如果當前存在事務,則拋出異常。

TransactionDefinition.PROPAGATION_MANDATORY

如果當前存在事務,則加入該事務;如果當前沒有事務,則拋出異常。

TransactionDefinition.PROPAGATION_NESTED

如果當前存在事務,則創建一個事務作為當前事務的嵌套事務來運行;如果當前沒有事務,則該取值等價于TransactionDefinition.PROPAGATION_REQUIRED。

事務補充:

同一個事務里面,對某一條數據的增刪改、 都會影響到這個事務里面接下來的對這個條數的增刪改查,如(舉例部分情況):

SpringBoot聲明式事務的簡單運用說明

阿里piapia規范推薦:

事務場景中,拋出異常被catch后,如果需要回滾,一定要手動回滾事務。

如:使用

SpringBoot聲明式事務的簡單運用說明

代替:

SpringBoot聲明式事務的簡單運用說明

阿里推薦的方式屬于自動提交/手動回滾,那如果我們想要手動提交、手動回滾的話,可參考:

SpringBoot聲明式事務的簡單運用說明

注:不需要@Transactional注解。

以上這篇SpringBoot聲明式事務的簡單運用說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美三区四区| 日本强好片久久久久久aaa| 欧美激情精品| 久久香蕉精品香蕉| 美女久久99| 成人在线免费观看91| 91p九色成人| 国产精品久久久久久av公交车| 国产伦乱精品| 久久免费精品| 日本国产精品| 先锋影音国产一区| 日韩va欧美va亚洲va久久| 欧美一级二区| 国产a亚洲精品| 久久在线电影| 综合激情视频| 美女视频网站久久| 成人羞羞在线观看网站| 九一成人免费视频| 亚洲一区二区小说| 日本免费新一区视频| 欧美黄色一区| 欧美1区免费| 少妇精品久久久一区二区| 国产精品一区二区精品| 97精品一区| 91久久久精品国产| 亚洲精品女人| 国产成人a视频高清在线观看| 91精品国产成人观看| 中文精品视频| 国产精品亚洲四区在线观看 | 欧美日韩第一| 丝袜诱惑制服诱惑色一区在线观看 | 国产成人a视频高清在线观看| 影视先锋久久| 日韩一二三区在线观看| 国产成人免费精品| 91久久久精品国产| 欧美日韩亚洲一区| 99精品视频在线| 亚洲aa在线| 四虎国产精品免费观看| 蜜桃tv一区二区三区| 91九色综合| 亚洲一级二级| 国产精品午夜一区二区三区| 久久伦理在线| 国产精品亚洲综合久久| 午夜欧美精品| 久久久久九九精品影院| 一区久久精品| 精品一区电影| 日韩专区一卡二卡| caoporn视频在线| 日韩欧美高清一区二区三区| 日韩欧美一区二区三区在线观看| 欧美一区免费| 亚洲精品成人| 精品国产99| 香蕉久久久久久| 日韩中文影院| 国产精品尤物| 亚洲综合二区| 日韩精品电影| 国产欧美一区二区精品久久久| 黑丝美女一区二区| 国产一区二区三区视频在线| 免费看欧美美女黄的网站| 正在播放日韩精品| 国产欧美69| 亚洲欧美日本视频在线观看| www在线观看黄色| 日韩有码av| 精品一区亚洲| av中文资源在线资源免费观看| 欧美一区=区三区| 亚洲一区二区毛片| 色在线视频观看| 亚洲精品亚洲人成在线观看| 久久中文亚洲字幕| 久久精品国产99国产精品| 综合激情在线| 国产精品嫩草99av在线| 黄色在线观看www| 国产精品白丝av嫩草影院| 一二三区精品| 国产精品试看| 人人香蕉久久| 中国字幕a在线看韩国电影| 国产另类在线| 亚洲精品亚洲人成在线观看| 欧美特黄一区| 日韩精品一区二区三区免费观影| 精品五月天堂| 国产日韩一区| 欧美中文高清| 天堂久久av| 免费在线观看精品| 日韩网站在线| 欧美日韩高清| 免费视频亚洲| 国产精品av久久久久久麻豆网| 国产一区二区亚洲| 麻豆一区二区三区| 国产精品资源| 国产欧美精品| 日韩av中文字幕一区二区| 综合干狼人综合首页| 视频在线观看91| 亚洲一区二区三区四区五区午夜| 欧美日韩国产传媒| 欧美久久精品一级c片| 欧美成人综合| 婷婷综合亚洲| 99视频一区| 久久福利精品| 视频一区欧美精品| 免费在线观看视频一区| 蜜桃久久av| 中文字幕一区二区精品区| 亚洲人妖在线| 人人精品久久| 欧美黑人做爰爽爽爽| 国产精品多人| 国产一区二区三区不卡视频网站| 国产suv精品一区二区四区视频| 福利一区二区三区视频在线观看| 久久精品三级| 色一区二区三区四区| 日韩一区二区三区在线免费观看| 亚洲电影有码| 国产一区观看| 好看不卡的中文字幕| 影院欧美亚洲| 国产模特精品视频久久久久| 性色av一区二区怡红| 久久亚洲风情| 日韩一区精品| 欧美精品91| 日韩欧美一区二区三区免费观看| 欧美1级日本1级| 99精品99| 日韩精品欧美精品| 国产日韩欧美三区| 国产一区二区三区黄网站| 亚洲精品一区三区三区在线观看| 亚洲精品91| 一区二区高清| 国产美女视频一区二区| 国产91在线精品| 亚洲无线一线二线三线区别av| 亚洲一区国产| 国产精品白浆| 日韩在线免费| 午夜亚洲精品| 国产精品videossex久久发布| 日韩伦理一区| 久久午夜视频| 国产精品a级| 欧美日韩精品在线一区| 视频一区二区欧美| 久久精品国产精品亚洲毛片| 日韩在线观看不卡| 丝袜亚洲精品中文字幕一区| 国产精品日本一区二区不卡视频| av资源新版天堂在线| 国产亚洲福利| 免费视频一区二区三区在线观看| 今天的高清视频免费播放成人| 日韩精品免费一区二区夜夜嗨 | 亚洲精品第一| 久久av电影| 国产精品av久久久久久麻豆网| 日本午夜精品| 久久亚洲国产| 国产毛片精品| 久久高清精品| 久久国内精品| 99久久www免费| 国产欧美日本| 最新亚洲一区| 国产suv精品一区| 日本亚洲不卡| 色综合www| 国产九一精品| 久久大逼视频| 天堂а√在线最新版中文在线| 亚洲精选av| 成人日韩精品| 国产精品亚洲一区二区在线观看| 亚洲高清激情| 久久这里只有| 亚洲综合五月| 久久一区二区三区喷水| 国产激情精品一区二区三区| 日韩专区欧美专区| 亚洲www啪成人一区二区| 在线精品福利|