spring boot 对注解@vild检验注解的全局异常处理
时间: 2023-09-20 20:00:42 浏览: 162
spring设置全局异常处理器
Spring Boot对于注解@Valid的全局异常处理是通过使用@ControllerAdvice注解来实现的。@ControllerAdvice注解被用于定义一个全局的异常处理器,可以捕获所有Controller层抛出的异常。
在一个使用了@Valid注解的Controller方法中,如果请求参数校验不通过,会抛出一个MethodArgumentNotValidException异常。Spring Boot可以捕获该异常,并通过@ControllerAdvice注解的类中的方法进行处理。
首先,我们需要在一个类上添加@ControllerAdvice注解,该类就是全局异常处理器。在该类中,我们可以定义多个方法,每个方法用于处理不同类型的异常。对于@Valid校验异常,我们可以定义一个方法,方法的参数为MethodArgumentNotValidException类型的异常对象。
在这个方法中,我们可以通过该异常对象获取到校验失败的所有字段以及校验失败的原因。我们可以根据实际的需求,将这些校验失败的信息进行封装,并返回给前端或进行其他处理。
这样,当@Controller注解的方法中使用了@Valid注解并且校验失败时,就会自动被全局异常处理器所捕获,并调用相应的处理方法进行处理。这样可以实现对@Valid注解的全局异常处理。
综上所述,Spring Boot通过@ControllerAdvice注解实现了对@Valid注解的全局异常处理。
阅读全文