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;
    }

   ...

}

搞定!

上一篇下一篇

猜你喜欢

热点阅读