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

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

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

统一异常处理

首先介绍统一异常处理,创建类GlobalExceptionHandler
springmvc使用@Valid和@ControllerAdvise实现请求参数校验统一异常处理
通过ControllerAdvice和@ExceptionHandler注解,在Controller中发生的异常错误就到指定异常处理方法进行处理。
查看一下MethodArgumentNotValidException这个类的源码
springmvc使用@Valid和@ControllerAdvise实现请求参数校验统一异常处理
它继承了Exception,包含参数和错误。BindError参数实现了error。
统一异常处理类实现完成。

请求参数校验

我们在@RequestBody或者其它注解前面加上@Valid,就可以对实体类参数进行校验
springmvc使用@Valid和@ControllerAdvise实现请求参数校验统一异常处理
通过@Valid注解我们就对请求的参数进行验证
springmvc使用@Valid和@ControllerAdvise实现请求参数校验统一异常处理
通过javax的@NotNUll等注解可以进行校验。
如果参数是一个实体类,这个实体类的参数也需校验,需要在参数上加上@Valid注解
ok,现在参数不对的话,自动跳到GlobalExceptionHandler类的指定方法进行处理。

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

相关推荐