久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java Spring三劍客(十二月贈書福利)

 程序IT圈 2021-01-16
今日推薦  

加小編微信(cxycode)

備注:加群

邀請加入程序員技術(shù)群

機器人自動邀請的

 Spring系列圖書推薦:(文末贈書活動,,不要錯過了)

Spring其中一個強大之處在于,他是支持聲明式事務的,。而用好聲明式事務的前提是,,要理解Spring的事務傳播機制。本文詳細介紹了Spring事務傳播機制,。

Spring的事務傳播類型

Spring的事務傳播機制類型定義在了Propagation枚舉類中,。主要有以下幾種類型。

public enum Propagation {
REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED),
SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS),
MANDATORY(TransactionDefinition.PROPAGATION_MANDATORY),
REQUIRES_NEW(TransactionDefinition.PROPAGATION_REQUIRES_NEW),
NOT_SUPPORTED(TransactionDefinition.PROPAGATION_NOT_SUPPORTED),
NEVER(TransactionDefinition.PROPAGATION_NEVER),
NESTED(TransactionDefinition.PROPAGATION_NESTED);
// ...
}

PROPAGATION_REQUIRED

PROPAGATION_REQUIRED表示加入當前正要執(zhí)行的事務不在另外一個事務中,,那么就開啟一個新的事務,。

例如,ServiceB.methodB()的事務級別定義為PROPAGATION_REQUIRED, 那么由于執(zhí)行ServiceA.methodA()時,,ServiceA.methodA()已經(jīng)開啟了事務,,這時調(diào)用ServiceB.methodB(),ServiceB.methodB()看到自己已經(jīng)運行在ServiceA.methodA()的事務內(nèi)部,,就不再開啟新的事務,。而假如ServiceA.methodA()運行時發(fā)現(xiàn)自己沒有在事務中,它就會為自己分配一個事務,。

這樣,,在ServiceA.methodA()或在ServiceB.methodB()內(nèi)的任何地方出現(xiàn)異常,事務都會被回滾,。 即使ServiceB.methodB()的事務已經(jīng)被提交,,ServiceA.methodA()在下面異常了要回滾,那么ServiceB.methodB()也會回滾,。

PROPAGATION_REQUIRED類型的事務處理流程

PROPAGATION_REQUIRES_NEW

例如,,定義ServiceA.methodA()的事務級別為PROPAGATION_REQUIRED,ServiceB.methodB()的事務級別為PROPAGATION_REQUIRES_NEW,,那么當執(zhí)行到 ServiceB.methodB()的時候,,ServiceA.methodA()所在的事務就會掛起,ServiceB.methodB()會開啟一個新的事務。等ServiceB.methodB的事務完成以后,,ServiceA.methodA()才繼續(xù)執(zhí)行,。它與PROPAGATION_REQUIRED的事務區(qū)別在于,事務的回滾程度,。因為ServiceB.methodB()是新開啟一個事務,,那么就 是存在兩個不同的事務。如果ServiceB.methodB()已經(jīng)提交,,那么ServiceA.methodA()失敗回滾,,ServiceB.methodB()是不會回滾的。如果ServiceB.methodB()失敗回滾,,如果它拋出的異常被ServiceA.methodA()捕獲,,ServiceA.methodA()事務仍然可能提交。

PROPAGATION_REQUIRES_NEW類型的事務處理流程

PROPAGATION_NESTED

PROPAGATION_NESTED使用具有可回滾到的多個保存點的單個物理事務,。PROPAGATION_NESTED與PROPAGATION_REQUIRES_NEW的區(qū)別是,,PROPAGATION_REQUIRES_NEW 另開啟一個事務,將會與它的父事務相互獨立,,而PROPAGATION_NESTED的事務和它的父事務是相依的,,它的提交要和它的父事務一起。也就是說,,如果父事務最后回滾,,它也要回滾。如果子事務回滾或提交,,不會導致父事務回滾或提交,但父事務回滾將導致子事務回滾,。

PROPAGATION_NESTED類型的事務處理流程

以上文章均摘自北京大學出版社出版社出版的新書《spring5 開發(fā)大全》,,作者柳偉衛(wèi)。關(guān)于spring的教程圖書,,在市面上一直有“spring三劍客在手,,天下無憂”之說,指的就是本書以及《spring boot 企業(yè)級應用開發(fā)實戰(zhàn)》《spring cloud微服務架構(gòu)開發(fā)實戰(zhàn)》,。

好了,,上面是技術(shù)文,說了這么多,,重點來了,,本次北大出版社贊助了六本書,下文介紹的Spring三劍客都各自2本 ,。

書籍簡介介紹完了,,下面是本次活動的重點

活動截止時間:2018年12月23號晚上9點整 

送書 活動一

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多