自定义error数据就是对返回的数据进行自定义。Spring Boot返回的Error信息一共有5条,分别是timestamp、status、error、path。在BasicErrorController的errorHtml()方法和error()方法,都是通过getErrorAttributes()方法获取Error信息的,该方法最终会调用DefaultErrorAttributes类的getErrorAttributes()方法,而DefaultErrorAttributes类是在ErrorMvcAutoConfiguration中默认提供的。
当系统没有提供 errorAttributes 时才会采 DefaultErrorAttributes,因此自定义错误提示时,只需要自己提供一个ErrorAttributes即可,而DefaultErrorAttributes是ErrorAttributes的子类,因此只需要继承 DefaultErrorAttributes 即可。
@Component
public class MyErrorAttribute extends DefaultErrorAttributes {
@Override
public Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {
Map<String, Object> map = super.getErrorAttributes(webRequest, options);
map.put("errorMsg", "出错了");
return map;
}
}
感谢分享