获取不明确的@ExceptionHandler方法映射为方法参数NotValidException在启动弹簧引导应用程序时
我已经为我的一个弹簧控制器编写了自定义异常处理程序类,以验证来自请求参数的电子邮件属性是否采用正确的格式。因此创建了一个扩展类的新类,并使用 编写了一个方法。ResponseEntityExceptionHandler
@ExceptionHandler
但是在春季启动应用程序启动期间,我遇到了以下异常,即停止运行我的项目。有人可以帮我解决这个问题吗?
服务器启动期间的异常:
org.springframework.beans.factory.BeanCreationException: 在类路径资源 [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class] 中创建名为'handlerExceptionResolver' 的 bean 时出错: 通过工厂方法实例化失败;
嵌套异常是 org.springframework.beans.BeanInstantiationException: Failed to instanceiate [org.springframework.web.servlet.HandlerExceptionResolver]: Factory method 'handlerExceptionResolver' threw exception;
nested exception is java.lang.IllegalStateException: Ambiguous @ExceptionHandler method mapped for [class org.springframework.web.bind.MethodArgumentNotValidException]: {public com.TestVO com.handler.exception.TestExceptionHandler.methodArgumentNotValidException(org.springframework.web.bind.MethodArgumentNotValidException), public final org.springframework.http.ResponseEntity org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler.handleException(java.lang.Exception,org.springframework.web.context.request.WebRequest) throws java.lang.Exception}
要处理的自定义类:MethodArgumentNotValidException
@ControllerAdvice
public class ExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorVO processValidationError(MethodArgumentNotValidException ex) {
BindingResult result = ex.getBindingResult();
List<FieldError> fieldErrors = result.getFieldErrors();
FieldError fieldError = fieldErrors.get(0);
ErrorVO dto = new ErrorVO(fieldError.getDefaultMessage());
return dto;
}
}