1、添加依赖
<!--验证器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2、验证器类
public class UserStoreValidator {
private Long userId;
@NotNull(message = "用户名不能为空")
@Size(min = 2, max = 20, message = "账号长度必须是2-20个字符")
private String userName;
@Size(min = 6, max = 20, message = "密码长度必须是6-20个字符")
private String userPassword;
@NotNull(message = "用户类型不能为空")
private Character type;
private Timestamp registerTime;
}
3、在控制器中使用
@PostMapping("")
public ReturnResult store(@RequestBody @Validated UserStoreValidator userStoreValidator) {
UserStoreValidator store = userService.store(userStoreValidator);
System.out.println(userStoreValidator);
return ReturnResult.success( "添加用户成功");
}
4、自定义验证失败的异常
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {
/**
* 处理所有校验失败的异常(MethodArgumentNotValidException异常)
* 设置响应状态码为400
* @param ex
* @return
*/
@ExceptionHandler(value = MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handleBindGetException(MethodArgumentNotValidException ex) {
// 获取所有异常
// List<String> errors = ex.getBindingResult()
// .getFieldErrors()
// .stream()
// .map(x -> x.getDefaultMessage())
// .collect(Collectors.toList());
return "验证失败啦";
}