2

我想在 Springboot 应用程序中处理 NoHandlerException 并返回自定义错误消息。我将以下内容添加到我的 application.properties 并尝试覆盖错误消息。

spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false

错误没有命中 @ControllerAdvice... 它在 defaulthandlerexceptionresolver 中处理。有任何想法吗?

4

1 回答 1

3

放在异常处理程序头上,这意味着@Order(Ordered.HIGHEST_PRECEDENCE)@ControllerAdvice

@ControllerAdvice

对声明 @ExceptionHandler、@InitBinder 或 @ModelAttribute 方法的类的 @Component 特化,以便在多个 @Controller 类之间共享。

@命令

定义带注释的组件的排序顺序。如果我们将其设置为Ordered.HIGHEST_PRECEDENCE,这对于最高优先级值是有用的常量。

代码应如下所示:

@Order(Ordered.HIGHEST_PRECEDENCE)
@ControllerAdvice
public class ExceptionsHandler extends ResponseEntityExceptionHandler {
    .....
}

参考:

@ControllerAdvice 注释文档

@Order 注释文档

于 2019-09-16T16:37:57.953 回答