SpringBoot对SpringMVC的自动配置,你知道多少?( 三 )


服务器有很多 。如果要自定义默认错误处理行为,可以设置的错误属性 。
要完全替换默认行为,可以实现ErrorController并注册该类型的bean定义,或者添加ErrorAttributes类型的bean以使用现有机制,但替换内容 。
你也可以定义一个带有@ControllerAdvice注解的类来定制JSON文档,以返回特定的控制器和/或异常类型,如下例所示:
@ControllerAdvice(basePackageClasses = SomeController.class)public class MyControllerAdvice extends ResponseEntityExceptionHandler {@ResponseBody@ExceptionHandler(MyException.class)public ResponseEntity<?> handleControllerException(HttpServletRequest request, Throwable ex) {HttpStatus status = getStatus(request);return new ResponseEntity<>(new MyErrorBody(status.value(), ex.getMessage()), status);}private HttpStatus getStatus(HttpServletRequest request) {Integer code = (Integer) request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);HttpStatus status = HttpStatus.resolve(code);return (status != null) ? status : HttpStatus.INTERNAL_SERVER_ERROR;}}完毕!!!

【SpringBoot对SpringMVC的自动配置,你知道多少?】


推荐阅读