Дескриптор Spring-boot NoHandlerException в @ControllerAdvice
Я хочу обработать исключение NoHandlerException в приложении Springboot и вернуть настраиваемое сообщение об ошибке. Я добавил следующее в свой application.properties и попытался переопределить сообщение об ошибке.
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false
Ошибка не попадает в @ControllerAdvice... Она обрабатывается в defaulthandlerexceptionresolver . Есть идеи?
1 ответ
Положив @Order(Ordered.HIGHEST_PRECEDENCE)
а также @ControllerAdvice
в заголовке обработчика исключений это означает:
@ControllerAdvice
Специализация @Component для классов, объявляющих методы @ExceptionHandler, @InitBinder или @ModelAttribute, которые будут совместно использоваться несколькими классами @Controller.
@Порядок
Определяет порядок сортировки аннотированного компонента. Если мы поставим Ordered.HIGHEST_PRECEDENCE, что является полезной константой для максимального значения приоритета.
Код должен выглядеть так:
@Order(Ordered.HIGHEST_PRECEDENCE)
@ControllerAdvice
public class ExceptionsHandler extends ResponseEntityExceptionHandler {
.....
}
ССЫЛКИ: