欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot事務(wù)使用及回滾實現(xiàn)代碼詳解

 更新時間:2020年08月03日 10:41:26   作者:風(fēng)中飄碼  
這篇文章主要介紹了SpringBoot事務(wù)使用及回滾實現(xiàn)代碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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

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

2、在使用事務(wù)的public(只有public支持事務(wù))方法(或者類-相當于該類的所有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)用②中方法進行手動回滾,如下圖:

另外,如果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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java分頁工具類及其使用(示例分享)

    Java分頁工具類及其使用(示例分享)

    本篇文章主要分享了Java分頁工具類及其使用的示例代碼,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Spring依賴注入的三種方式小結(jié)

    Spring依賴注入的三種方式小結(jié)

    本篇文章主要介紹了Spring依賴注入的三種方式小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java常用類庫Apache Commons工具類說明及使用實例詳解

    Java常用類庫Apache Commons工具類說明及使用實例詳解

    這篇文章主要介紹了Java常用類庫Apache Commons工具類說明及使用實例詳解,需要的朋友可以參考下
    2020-02-02
  • 使用SpringBoot Actuator監(jiān)控應(yīng)用示例

    使用SpringBoot Actuator監(jiān)控應(yīng)用示例

    Actuator是Spring Boot提供的對應(yīng)用系統(tǒng)的自省和監(jiān)控的集成功能,可以對應(yīng)用系統(tǒng)進行配置查看、相關(guān)功能統(tǒng)計等。這篇文章主要介紹了使用SpringBoot Actuator監(jiān)控應(yīng),有興趣的可以了解一下
    2018-05-05
  • Java 中的控制反轉(zhuǎn)(IOC)詳解

    Java 中的控制反轉(zhuǎn)(IOC)詳解

    這篇文章主要介紹了理解Java 中的IOC控制反轉(zhuǎn),具有一定參考價值,需要的朋友可以了解下,希望能夠給你帶來幫助
    2021-10-10
  • 在已有spring的基礎(chǔ)上集成hibernate的實例講解

    在已有spring的基礎(chǔ)上集成hibernate的實例講解

    下面小編就為大家?guī)硪黄谝延衧pring的基礎(chǔ)上集成hibernate的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java全面細致講解類與對象

    Java全面細致講解類與對象

    類和對象是兩種以計算機為載體的計算機語言的合稱。對象是對客觀事物的抽象,類是對對象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲在內(nèi)存中—個可以擁有在某個范圍內(nèi)的可變存儲區(qū)域
    2022-05-05
  • Spring框架學(xué)習(xí)常用注解匯總

    Spring框架學(xué)習(xí)常用注解匯總

    這篇文章主要為大家介紹了Spring框架學(xué)習(xí)中一些經(jīng)常用的注解匯總及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • 我總結(jié)的幾種@Transactional失效原因說明

    我總結(jié)的幾種@Transactional失效原因說明

    這篇文章主要是我總結(jié)的幾種@Transactional失效原因說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • java實現(xiàn)死鎖的示例代碼

    java實現(xiàn)死鎖的示例代碼

    本篇文章主要介紹了java實現(xiàn)死鎖的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論