1、这些注解用于java的实体类属性字段上,在进行请求或请求的时候会根 据字段的注解进行对应的校验,简化校验相关的代码。
2、在前端请求解析到 controller 的时候,可使用 @valid 注解,开启校验,当校验不同过时,会返回对应的message描述。
//被注释的元素必须为null
@Null(message = "元素不能为空!")
//被注释的元素不能为null
@NotNull
//被注释的元素必须为true
@AssertTrue
//被注释的元素必须为false
@AssertFalse
//被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Min(value)
//被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Max(value)
//被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMin(value)
//被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMax(value)
//被注释的元素的大小必须在指定的范围内。
@Size(max,min)
//被注释的元素必须是一个数字,其值必须在可接受的范围内
@Digits(integer,fraction)
//被注释的元素必须是一个过去的日期
@Past
//被注释的元素必须是一个将来的日期
@Future
//被注释的元素必须符合指定的正则表达式。
@Pattern(value)
//被注释的元素必须是电子邮件地址
@Email
//被注释的字符串的大小必须在指定的范围内
@Length
//被注释的字符串必须非空
@NotEmpty
//被注释的元素必须在合适的范围内
@Range
3、例子:
package com.commons.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author mis_wu
* @date 2022/3/13 11:39
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@ApiModel(value = "电影用户信息表")
public class MovieUserInfo implements Serializable {
@ApiModelProperty("用户id")
@NotNull(message = "用户id不能为空!")
private Long userId;
@ApiModelProperty("用户名")
@NotNull(message = "用户名不能为空!")
private String userName;
@ApiModelProperty("用户登陆密码")
@NotNull(message = "用户密码不能为空!")
private String userPassword;
}
//使用@Valild验证
@PostMapping("/movieUserRegister")
public ResponseResult movieUserRegister(@Valid MovieUserInfo movieUserInfo){
movieUsersServices.movieUserRegister(movieUserInfo);
return null;
}