从Spring Boot Rest Controller修改默认的JSON错误响应

目前来自spring boot的错误响应包含标准内容,如下所示:

{
   "timestamp" : 1426615606,
   "exception" : "org.springframework.web.bind.MissingServletRequestParameterException",
   "status" : 400,
   "error" : "Bad Request",
   "path" : "/welcome",
   "message" : "Required String parameter 'name' is not present"
}

我正在寻找一种方法来摆脱响应中的“异常”属性。有办法实现吗?

最佳答案
documentation on error handling中所述,您可以提供自己的实现ErrorAttributes的bean来控制内容。

一个简单的方法就是对DefaultErrorAttributes进行子类化。例如:

@Bean
public ErrorAttributes errorAttributes() {
    return new DefaultErrorAttributes() {
        @Override
        public Map<String, Object> getErrorAttributes(RequestAttributes requestAttributes, boolean includeStackTrace) {
            Map<String, Object> errorAttributes = super.getErrorAttributes(requestAttributes, includeStackTrace);
            // Customize the default entries in errorAttributes to suit your needs
            return errorAttributes;
        }

   };
}

转载注明原文:从Spring Boot Rest Controller修改默认的JSON错误响应 - 代码日志