SpringBoot中添加事務

來源:互聯網
上載者:User

標籤:方式   載入   asp   ola   jvm   情況   support   tty   red   

今天項目中需要使用到事務,所以在這裡將SpringBoot的事務實現方式學習一下

SpringBoot中使用事務會使用到@Transactional這個註解來實現

  先來對Transactional註解有個大致瞭解

  1.其上註解

@Target({ElementType.METHOD, ElementType.TYPE})//METHOD:用於描述方法,TYPE:用於描述類、介面(包括註解類型) 或enum聲明@Retention(RetentionPolicy.RUNTIME)//註解不僅被儲存到class檔案中,jvm載入class檔案之後,仍然存在@Inherited//闡述了某個被標註的類型是被繼承的@Documented//表明這個註解應該被 javadoc工具記錄

  2.屬性 

    2.1 rollbackFor(這就是我今天使用到的屬性)

      指定哪些異常需要進行交易回復,這裡可以設定異常數組,通常為RuntimeException.class、Exception.class

    2.2 value和2.3 transactionManager(因為使用了AliasFor註解,value和transactionManager互為別名)

      這兩個放在一起講,如果我們沒有指定,預設為上下文中聲明的名稱為“transactionManager”,pringboot會自動設定一個 DataSourceTransactionManager

    2.4 propagation 預設為Propagation.REQUIRED

      用於設定事務的傳播行為,業務方法需要在一個事務中運行,如果方法運行時,已處在一個事務中,那麼就加入該事務,否則自己建立一個新的事務.這是spring預設的傳播行為

    2.5 isolation 預設為  Isolation.DEFAULT

      用於設定底層資料庫的交易隔離等級,交易隔離等級用於處理多事務並發的情況,通常使用資料庫的預設隔離等級即可,基本不需要進行設定

    2.6 timeout 預設為-1,表示永不逾時

      用於設定事務的逾時秒數

    2.7 readOnly 預設為false 

      設定當前事務是否為唯讀事務

    2.8 rollbackForClassName (這個和rollbackFor最大的區別就是一個是指定異常類,一個是指定異常類名)

    2.9 noRollbackFor(這個應該就是忽略哪些異常)

    2.10 noRollbackForClassName(這個我覺得不需要我詳細說明了)

  3.實際使用(這算是手動復原使用)

    1.首先在我們需要使用事務的Service層的方法上添加@Transactional註解

    2.rollbackFor配置我們需要捕獲的哪些異常來進行交易回復

    3.其他參數按照自己實際需求來添加

    4.方法中捕獲這個異常,然後調用

      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

注意:

  [email protected]註解必須應用到public方法上才有效

SpringBoot中添加事務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.