zoukankan      html  css  js  c++  java
  • 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. 上面的操作就能进行业务逻辑回滚,同时记录错误日志
  • 相关阅读:
    mongodb的安装
    express初体验
    vscode自定义快捷键
    项目开发前准备——清除默认样式
    手动开启和关闭mysql
    一步添加博客园看板娘
    js实现动态球球背景
    kendo grid 使用小结
    flask 与celery
    scrapy 调用js
  • 原文地址:https://www.cnblogs.com/eternityz/p/13601028.html
Copyright © 2011-2022 走看看