10.java 异常处理,事务管理,事务共用,事务传递

Java使用汇总

  1. Java-IDEA
  2. Java-Maven,依赖管理,私服 https://www.cnblogs.com/chenshaojun2008/p/17493632.html
  3. Java-IOC&DI
  4. Java-Mybatis连接池,动态sql https://www.cnblogs.com/chenshaojun2008/p/17496913.html
  5. Java-文件上传(本地和OSS)
  6. Java-登录校验JWT,过滤器,拦截器使用总结 https://www.cnblogs.com/chenshaojun2008/p/17500546.html
  7. Java-事务管理 https://www.cnblogs.com/chenshaojun2008/p/17500949.html
  8. Java-AOP https://www.cnblogs.com/chenshaojun2008/p/17501255.html
  9. IDEA 有用的插件使用汇总 记录 https://www.cnblogs.com/chenshaojun2008/p/17500940.html
    10.异常处理,事务管理,事务共用,事务传递 https://www.cnblogs.com/chenshaojun2008/p/17500949.html

10.异常处理,事务管理,事务共用,事务传递

1.在每个controller 添加try catch
2.定义全局异常处理器

/**
 * 全局异常处理器
 */

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)//捕获所有异常
    public Result ex(Exception ex){
        ex.printStackTrace();
        return Result.error("对不起,操作失败,请联系管理员");
    }

}
  1. 事务处理

事务是一组操作的集合,要么都操作成功,要都失败。

3.1操作:

1.开启事务:start transaction/begin
2.提交事务:commit
3.回滚事务:rollback

3.2 @Transactional: spring 事务关联,事务可以作用在类上,也可以作用在方法上

3.3 #spring 事务管理日志 配置 application.xml

logging:
  level:
    org.springframework.jdbc.support.JdbcTransactionManager:dubug

3.4 事务管理:
1.事务进阶:

rollbackFor: 对所有异常回滚
propagation:事务传递配置项

运行时 异常才会回滚

3.5.rollbackFor=Exception.class;Propagation.REQUIRES;Propagation.REQUIRES_NEW 的区别

@Transactional(rollbackFor=Exception.class) //但配置了这个,对所有异常回滚:
  @Transactional(propagation = Propagation.REQUIRES) //但配置了这个,会共用上下方法的同一个事务:默认的
  @Transactional(propagation = Propagation.REQUIRES_NEW) //但配置了这个,会开启新的事务:
   @Override
   public void delete(Integer id) {
       deptMapper.deleteById(id);
   }

方法都添加事务 @Transactional,默认是共享同一个事务:@Transactional(propagation =ropagation.REQUIRES)

posted @ 2023-06-24 13:01  大树2  阅读(38)  评论(0编辑  收藏  举报