参数校验具体实现
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
注释说明
@AssertFalse 被注解的元素必须为 false
@AssertTrue 被注解的元素必须为 true
@DecimalMax(value) 被注解的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注解的元素必须是一个数字,其值必须大于等于指定的最小值
@Digits (integer, fraction) 被注解的元素必须是一个数字,其值必须在可接受的范围内
@Null 被注解的元素必须为空
@NotNull 被注解的元素必须不为空
@Min(value) 被注解的元素必须是一个数字,其值必须大于等于指定的最大值
@Max(value) 被注解的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min) 被注解的元素的长度必须在指定的范围内
@Past 被注解的元素必须是一个过去的日期
@Future 被注解的元素必须是一个未来的日期
@Pattern(value) 被注解的元素必须符合指定的正则表达式
@NotEmpty 不能为null,集合、数组、map等size()不能为0;字符串trim()后可以等于“”
@NotBlank 字符串不能为null,字符串trim()后也不能等于“”
entity
@Data
public class User {
@NotNull(message = "用户id不能为空")
private Long id;
@Size(min = 6, max = 11, message = "账号长度必须是6-11个字符")
private String account;
@Email(message = "邮箱格式不正确")
private String email;
@NotBlank(message = "必填项不为空")
@NotEmpty(message = "不能为空")
private String email;
}
controller
@RestController
@Slf4j
@Validated
public class ValidController {
@ApiOperation("RequestBody校验")
@PostMapping("/valid/test1")
public String test1(@Validated @RequestBody ValidVO validVO){
log.info("validEntity is {}", validVO);
return "test1 valid success";
}
@ApiOperation("Form校验")
@PostMapping(value = "/valid/test2")
public String test2(@Validated ValidVO validVO){
log.info("validEntity is {}", validVO);
return "test2 valid success";
}
@ApiOperation("单参数校验")
@PostMapping(value = "/valid/test3")
public String test3(@Email String email){
log.info("email is {}", email);
return "email valid success";
}
}