9°

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

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

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

统一异常处理

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

请求参数校验

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

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

本文由【wotrd】发布于开源中国,原文链接:https://my.oschina.net/wotrd/blog/3072738

全部评论: 0

    我有话说: