springmvc使用Valid和ControllerAdvise实现请求参数校验统一异常处理

38次阅读

共计 705 个字符,预计需要花费 2 分钟才能阅读完成。

springmvc 使用 @Valid 和 @ControllerAdvise 实现请求参数校验统一异常处理

最开始我使用的是 jsp+servlet。后台接口使用 request.getParameter(key) 方法接收参数,特别麻烦。接收之后,我们还得进行一连串的参数校验。现在使用 springboot 的 mvc。使用 @ReuestBody 接收参数,自动将前端参数解析封装成实体类。很方便,但是还是需要校验参数。下面我介绍一个简单的方式,通过 @Valid 和 @ControllerAdvice 注解实现参数校验和统一异常处理。

统一异常处理

首先介绍统一异常处理,创建类 GlobalExceptionHandler

通过 ControllerAdvice 和 @ExceptionHandler 注解,在 Controller 中发生的异常错误就到指定异常处理方法进行处理。
查看一下 MethodArgumentNotValidException 这个类的源码

它继承了 Exception,包含参数和错误。BindError 参数实现了 error。
统一异常处理类实现完成。

请求参数校验

我们在 @RequestBody 或者其它注解前面加上 @Valid,就可以对实体类参数进行校验

通过 @Valid 注解我们就对请求的参数进行验证

通过 javax 的 @NotNUll 等注解可以进行校验。
如果参数是一个实体类,这个实体类的参数也需校验,需要在参数上加上 @Valid 注解
ok,现在参数不对的话,自动跳到 GlobalExceptionHandler 类的指定方法进行处理。

未完待续,有问题请留言!
个人博客地址:https://blog.ailijie.top/arch…

正文完
 0