SpringBoot中怎么實現(xiàn)異?;貪L事務(wù)

SpringBoot 中怎么實現(xiàn)異?;貪L事務(wù),相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)服務(wù)項目包括劍川網(wǎng)站建設(shè)、劍川網(wǎng)站制作、劍川網(wǎng)頁制作以及劍川網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,劍川網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到劍川省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

Springboot中事務(wù)的使用:

1、啟動類加上@EnableTransactionManagement注解,開啟事務(wù)支持(其實默認是開啟的)。

2、在使用事務(wù)的public(只有public支持事務(wù))方法(或者類-相當(dāng)于該類的所有public方法都使用)加上@Transactional注解。

在實際使用中一般是在service中使用@Transactional,那么對于controller->service流程中:

如果controller未開啟事務(wù),service中開始了事務(wù),service成功執(zhí)行,controller在之后的運行中出現(xiàn)異常(錯誤),不會自動回滾。

也就是說,只有在開啟事務(wù)的方法中出現(xiàn)異常(默認只有非檢測性異常才生效-RuntimeException )(錯誤-Error)才會自動回滾。

 如果想要對拋出的任何異常都進行自動回滾(而不是只針對RuntimeException),只需要在使用@Transactional(rollbackFor = Exception.class)即可。

開啟事務(wù)的方法中事務(wù)回滾的情況:

①未發(fā)現(xiàn)的異常,程序運行過程中自動拋出RuntimeException或者其子類,程序終止,自動回滾。

②使用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();進行手動回滾。

③注意:如果在try-catch語句中對可能出現(xiàn)的異常(RuntimeException)進行了處理,沒有再手動throw異常,spring認為該方法成功執(zhí)行,不會進行回滾,此時需要調(diào)用②中方法進行手動回滾 (java 框架項目案例:www.1b23.com)

另外,如果try-catch語句在finally中進行了return操作,那么catch中手動拋出的異常也會被覆蓋,同樣不會自動回滾。

//不會自動回滾try{throw new RuntimeException();
}catch(RuntimeException e){
    e.printStackTrace();
}finally{
}//會自動回滾try{throw new RuntimeException();
}catch(RuntimeException e){
    e.printStackTrace();throw new RuntimeException();
}finally{
}

看完上述內(nèi)容,你們掌握SpringBoot 中怎么實現(xiàn)異?;貪L事務(wù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站題目:SpringBoot中怎么實現(xiàn)異?;貪L事務(wù)
分享鏈接:http://bm7419.com/article34/pssspe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗微信小程序、網(wǎng)站建設(shè)、、品牌網(wǎng)站設(shè)計、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司