项目中我们会将响应封装成json返回,若将所有的接口的数据格式统一,可以使前端对数据的操作更一致、轻松。一般采用错误码、错误消息、返回数据三部分组成。
采用返回前检查的方式完成,实现ResponseBodyAdvice<T>
接口,实现里面的supports方法(代表哪些需要同意返回返回),重写beforeBodyWrite方法,封装里面的 T数据。
- 注:@RestControllerAdvice ----value属性用来指定 Controller 范围
- 通过@ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置。
- 注解了@RestControllerAdvice的类的方法可以使@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上。
- @RestControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上。
- @ExceptionHandler:用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。
- @InitBinder:用来设置WebDataBinder,用于自动绑定前台请求参数到Model中。
- @ModelAttribute:本来作用是绑定键值对到Model中,当与@ControllerAdvice配合使用时,可以让全局的@RequestMapping都能获得在此处设置的键值对
项目统一异常处理:
在mvc层实现全栈的异常捕获处理
@RestControllerAdvice添加mvc增强配置类,@ExceptionHandler(value=Exception.class)标注进行异常管理