自定义全局异常处理器来处理程序运行中发生的不可预知的问题,然后封装异常信息显示给前端页面
定义方法:
定义自定义异常类,添加@RestControllerAdvice(controller + responsebody),在类中定义方法捕获异常,这个方法上需要添加@ExceptionHandler指定捕获异常的类型
通常在执行某些方法操作时,由于发生了异常,可能会导致数据的不一致,这时就需要事务回滚,返回到未执行前的状态
在service层的方法上,实现类上,或service接口上添加@Transactional注解,表示将该方法,类,接口交给spring框架进行事务管理,方法成功执行自动提交事务,方法出现异常则回滚事务。
但是默认情况下,只有发生运行时异常RuntimeException才会rollback回滚事务,如果发生其他类型异常怎么办?这时就需要在Transactonal注解上,定义rollbackfor属性控制出现上面类型异常时,回滚事务的情况.
有时候也会发生这样的现象,一个开启了事务的方法在执行中,调用了另一个开启了事务的方法b,则方法b的事务应该怎么办,时参与到a方法的事务还是新开一个事务?需要在Transactional注解配置propergation属性控制