SpringBoot 404等异常时返回JSON字符串
2019-04-03 本文已影响0人
12313凯皇
步骤一
在application.properties
文件中添加如下两句:
#没有绑定的url直接抛出错误
spring.mvc.throw-exception-if-no-handler-found=true
#不为静态文件建立映射
spring.resources.add-mappings=false
步骤二
自定义一个异常处理类AllExceptionHandler
@RestControllerAdvice
public class AllExceptionHandler {
private static Logger logger = LoggerFactory.getLogger(AllExceptionHandler.class);
@ExceptionHandler(value = Exception.class)
public Msg defaultErrorHandler(Exception e) {
logger.error("AllExceptionHandler ", e);
if (e instanceof org.springframework.web.servlet.NoHandlerFoundException) {
//404 Not Found
return new Msg(404, e.getMessage());
} else {
//500
return new Msg(500, e.getMessage());
}
}
}
自定义的Msg
类:
public class Msg {
/**
* 返回码
*/
private int resultCode;
/**
* 备注信息
*/
private String info;
/**
* 空构造函数
*/
public Msg() {
}
/**
* 自定义消息
*
* @param resultCode resultCode
* @param info info
*/
public Msg(int resultCode, String info) {
this.resultCode = resultCode;
this.info = info;
}
...
}
搞定!