我使用MethodValidationPostProcessor bean来验证Controller类中方法的方法参数。具有周围建议的方面在此方法上被调用。全局异常处理程序使用ControllerAdvice捕获方法在参数验证失败时引发的任何异常。现在的问题是,只要方法抛出异常,它就会直接进入方面,而不会被全局异常处理程序捕获。以下是代码段–
自定义方面-
@Component
@Aspect
public class WebServiceAnnotationAspect implements Ordered {
// Around method
@Override
public int getOrder() {
return 1;
}
}
全局自定义例外-
@ControllerAdvice
public class CustomExceptionHandler {
@ExceptionHandler(CustomException.class)
public void handleIncorrectParameterException(CustomException ce) {
// some code
}
为“ MethodValidationPostProcessor”定义的Bean-
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
当我删除Aspect时,全局异常处理程序会捕获异常。我相信,问题出在方面的执行顺序上。
如果是,是否有任何方法可以定义“ MethodValidationPostProcessor”的顺序?