定制的弹簧启动控制器,支持异常处理

时间:2018-04-27 03:04:02

标签: spring spring-boot

我在覆盖默认的弹簧启动控制器时遇到了麻烦。原因必须是支持自定义异常处理,即使用无效对象发布,无效索引更新,无效索引删除等。

但是我越深入自己的控制器,我发现自己需要解决的问题越多:

  1. 在每个对象中添加_links.self.href,虽然spring-hateoas可以帮到我,但仍有很多工作要做。

  2. 支持分页和大小调整。再次,做了很多工作。

  3. 我开始想知道在进行自己的异常处理时,上述两点是否可以保持不变.....

1 个答案:

答案 0 :(得分:0)

@ControllerAdvice
public class CommonExceptionHandler {
    private Logger logger = getLogger(CommonExceptionHandler.class);

    @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
    @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)
    public String methodNotSupported(HttpRequestMethodNotSupportedException e) {
        logger.error("receive unsupported method: {}", e.getMessage());
        return "error";
    }
}

我不知道这是否是你所需要的 HttpRequestMethodNotSupportedException.class可以替换为任何Throwable类或界面,甚至是Throwable.class本身,也可以替换为您的自定义例外。
处理完异常后,您可以返回任何宁静的结果或视图(例如视图:/error页面。)

更多信息:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc