美文网首页Java
@NotBlank 参数校验注解使用指南

@NotBlank 参数校验注解使用指南

作者: ok200 | 来源:发表于2021-04-06 10:11 被阅读0次

    常见的参数校验我们会写很多if条件去过滤,非常繁琐。

    现在我们可以使用@NotBlank、@NotNull、@NotEmpty等等注解一键判断接口入参是否符合要求。

    1、添加依赖

            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>2.0.1.Final</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>6.1.5.Final</version>
            </dependency>
    

    或者

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
        <version>2.3.3.RELEASE</version>
    </dependency>
    

    2、添加注解 @Valid与@NotBlank等配合使用

    @RestController
    @RequestMapping("/valid")
    public class ValidationController {
    
        @PostMapping
        public String Valid1(@RequestBody @Valid Params params){
            return params.getUserName();
        }
    
        @Data
        public static class Params {
            @NotBlank(message = "用户名不能为空")
            private String userName;
            @NotBlank(message = "密码不能为空")
            private String password;
        }
    }
    

    3、全局异常处理

    @RestControllerAdvice
    public class GlobalExceptionHandler {
    
        @ResponseBody
        @ExceptionHandler(HttpMessageNotReadableException.class)
        public ResponseData<Object> handleException(HttpMessageNotReadableException e) {
            log.error("", e);
            return new ResponseData<>(-1, "请求体不能为空");
        }
        @ResponseBody
        @ExceptionHandler(MethodArgumentNotValidException.class)
        public ResponseData<Object> handleException(MethodArgumentNotValidException e) {
            String err = e.getBindingResult().getFieldError() != null ? e.getBindingResult().getFieldError().getDefaultMessage() : e.getMessage();
            log.error("", e);
            return new ResponseData<>(-1, err, "");
        }
    }
    

    4、完成

    相关文章

      网友评论

        本文标题:@NotBlank 参数校验注解使用指南

        本文链接:https://www.haomeiwen.com/subject/wepykltx.html