Spring手動回滾事務,在捕獲的異常中記錄錯誤日志


一.業務需求

方法中需要處理一定的業務邏輯,如果業務邏輯失敗,則相關的業務操作回滾,同時記錄一條錯誤日志

二.具體實現

//添加事務注解
@Transactional(rollbackFor = Exception.class)
public void changeBookPrice(Book book, Book bookEntity) {
  //創建回滾點
  Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
  try {
      //具體的業務邏輯操作
      ......
  } catch (Exception e) {
      log.error("報錯的詳細信息為:{}", e.getMessage());
      //手動回滾事務
      TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
      //記錄錯誤的日志
      .......
  }
}

詳細解釋

  1. 方法上添加@Transactional注解
  2. 方法開始的地方創建回滾點
  3. try中進行業務邏輯操作
  4. catch中手動進行事務回滾,並記錄錯誤日志
  5. 上面的操作就能進行業務邏輯回滾,同時記錄錯誤日志


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM