https://www.cnblogs.com/mr-yang-localhost/p/7812038.html

在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等

hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式

验证请求参数时,在@RequestBody DemoModel demo之间加注解 @Valid,然后后面加BindindResult即可;

多个参数的,可以加多个@Valid和BindingResult :

public void test()(@RequestBody @Valid DemoModel demo, BindingResult result)

public void test()(@RequestBody @Valid DemoModel demo, BindingResult result, 
            @RequestBody @Valid DemoModel demo2, BindingResult result2)


@RequestMapping("/demo2")
    public void demo2(@RequestBody @Valid DemoModel demo, BindingResult result){
        if(result.hasErrors()){
            for (ObjectError error : result.getAllErrors()) {
                System.out.println(error.getDefaultMessage());
            }
        }
    }

SpringBoot

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

SpringMVC

要在Maven项目中使用Hibernate Validator,只需将以下依赖项添加到pom.xml:
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.0.15.Final</version>
</dependency>

Hibernate Validator需要实现统一表达式语言(JSR 341)来评估约束违规消息中的动态表达式
当您的应用程序在诸如JBoss AS的Java EE容器中运行时,容器已经提供了EL实现
但是,在Java SE环境中,您必须将实现作为依赖项添加到POM文件中:
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.el</artifactId>
    <version>3.0.1-b09</version>
</dependency>