提问人:Maciaz 提问时间:11/6/2023 更新时间:11/6/2023 访问量:13
在库类中覆盖 @Order(Ordered.HIGHEST_PRECEDENCE) - 这甚至可能吗?
Override @Order(Ordered.HIGHEST_PRECEDENCE) in library class - is this even possible?
问:
我们在项目中使用了标记为 的外部库。由于支持结束,我们不得不升级库,但它也更改了一些异常处理程序,使它们返回而不是像以前那样......@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
409
400
所以我正在尝试创建一个自定义异常处理程序和自定义异常。
问题是,库处理程序中有这样的类默认函数......Exception
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) // 500
@ExceptionHandler(Exception.class)
@ResponseBody
public ErrorInfo defaultErrorHandler(Exception e) {
LOGGER.error("Internal error: ", e);
ErrorInfo errorInfo = new ErrorInfo(INTERNAL_SERVER_ERROR_MESSAGE);
errorInfo.setMessageKey(INTERNAL_SERVER_ERROR_MESSAGE_KEY);
return errorInfo;
}
结果是当我的自定义异常被抛出时,它首先由于较低而进入库处理程序,并在默认函数中处理并返回...@Order
500
下面是我的自定义异常处理程序的代码:
@ControllerAdvice
public class ZweRestExceptionHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(ZweRestExceptionHandler.class);
@ResponseStatus(HttpStatus.BAD_REQUEST) // 400
@ExceptionHandler(ZweBadRequestException.class)
@ResponseBody
public ErrorInfo handleZweBadRequestException(ZweBadRequestException e) {
return createInfoFromException(e, BAD_REQUEST_MESSAGE_KEY);
}
}
当谈到我的自定义处理程序时,我无法标记
它,因为它会导致溢出并且顺序仍然会更高......@Order(Ordered.HIGHEST_PRECEDENCE) - 1
我有哪些选择?还有其他方法可以覆盖类吗?我将不胜感激任何线索。HIGHEST_PRECEDENCE
答: 暂无答案
评论