我在覆盖默认的弹簧启动控制器时遇到了麻烦。原因必须是支持自定义异常处理,即使用无效对象发布,无效索引更新,无效索引删除等。
但是我越深入自己的控制器,我发现自己需要解决的问题越多:
在每个对象中添加_links.self.href,虽然spring-hateoas可以帮到我,但仍有很多工作要做。
支持分页和大小调整。再次,做了很多工作。
我开始想知道在进行自己的异常处理时,上述两点是否可以保持不变.....
答案 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