将业务执行过程中会产生的各种异常,对其进行统一处理是所有web项目的通用需求,spring 作为最流行的web框架,自然是提供了解决方案。
在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解来增强我们 controller 层的。
在标注了 @ControllerAdvice、@RestControllerAdvice 注解的类中,配合使用以下注解可以实现不同的功能
对于全局异常处理,具体来说就是,通过创建 @ControllerAdvice 类,并自定义一个 @ExceptionHandler 方法,来统一处理。
这里提供一种常见的设计,供大家参考。
主要分为以下几个部分
每一个业务状态都对于一个状态码
每一种异常都对于一种ApplicationEnum
自定义业务结果类,来统一所有 controller 层的返回值
为了方便使用,再创建一个 SuccessResult 和一个 FailResult