Maven依赖

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

属性规则注解

@Null

所注解的元素值为null

@NotNull

所注解的元素值不能为null

@NotBlank

所注解的元素值有内容,仅包含空格、制表符(tab键)的字符串视为空

@Size

所注解的元素必须是String、集合或数组,且长度大小需保证在给定范围之内

@AssertFalse

所注解的元素必须是Boolean类型,且值为false

@AssertTrue

所注解的元素必须是Boolean类型,且值为true

@Max

所注解的元素必须是数字,且值小于等于给定的值

@Min

所注解的元素必须是数字,且值大于等于给定的值

@DecimalMax

所注解的元素必须是数字,且值小于等于给定的值,通常用于BigDecimal类型

@DecimalMin

所注解的元素必须是数字,且值大于等于给定的值,通常用于BigDecimal类型

@Digits

所注解的元素必须是数字,且值必须是指定的位数

@Future

所注解的元素必须是将来某个日期

@Range

所注解的元素需在指定范围区间内

@Past

所注解的元素必须是某个过去的日期

@PastOrPresent

所注解的元素必须是过去某个或现在日期

@Pattern

所注解的元素必须满足给定的正则表达式

@Email

所注解的元素需满足Email格式

示例: 

实体类

public class User{
    @NotNull(message = "id不能为空")
    @Min(value = 1,message = "id不能小于1")
    private Integer id;

    private String username;

    @Size(min = 6, max = 18, message = "密码长度必须大于等于6,且小与等于18")
    private String password;

    @Min(value = 1,message = "年龄不能小于1")
    @Max(value = 100,message = "年龄不能大于100")
    private Integer age;

    private String gender;

    @Email(message = "邮箱不符合规则")
    private String email;
}

Controller

@PostMapping("/add")
public String addUser(@Validated @RequestBody User user){
    userMapper.addUser(user);
    return "true";
}

参数校验注解@Valid与@Validated

       两者区别主要有三个方面:

                1、分组

                        @Validated:提供了一个分组功能,可以在入参验证时,根据不同的分组采用不

                的验证机制。没有添加分组属性时,默认验证没有分组的验证属性。

                2、作用域

                    @Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)

                    @Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上

                3、嵌套

                     @Validated:用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字

                段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。

                     @Valid:用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)

                上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。