【资料图】
异常处理,事务管理,事务共用,事务传递
1.在每个controller 添加try catch2.定义全局异常处理器
/** * 全局异常处理器 */@RestControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(Exception.class)//捕获所有异常 public Result ex(Exception ex){ ex.printStackTrace(); return Result.error("对不起,操作失败,请联系管理员"); }}
- 事务处理
事务是一组操作的集合,要么都操作成功,要都失败。
3.1操作:
1.开启事务:start transaction/begin2.提交事务:commit3.回滚事务: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)