validator参数校验
本文只是针对springboot框架中validator数据校验初级使用和演示
部分内容和思路参考了该篇博客
Java Bean Validation 最佳实践 博客作者:北言
一、参数校验(类属性)
在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等。 会导致如下情况:
- 验证代码繁琐
- 方法内代码显得冗长
- 修改相同逻辑验证代码时需要修改涉及到同样逻辑的所有地方
hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式。
spring-boot-starter-web 包里面有hibernate-validator包,不需要再引入依赖。
使用@Valid对参数进行校验在使用对象进行参数接收时,我们可以对参数进行校验录入我们可以对属性username和password加上如下注解:
public class User{
@NotNull(message = "用户名不能为空")
private String username; // 用户名
@Max(value = 999999,message = "超过最大数值")
@Min(value = 000000,message = "密码设定不正确")
@NotNull(message = "密码不能为空")
private String password; // 密码
}
然后我们给Controller层的方法中接收的对象前加入@Valid注解,并在参数中加入BindingResult来获取错误信息。
在逻辑处理中我们判断BindingResult知否含有错误信息,如果有错误信息,则直接返回错误信息。
// 添加用户
@PostMapping("/createuser") // 多个 @Valid 则对应多个 BindingReslt
public String createUser(@Valid User user, BindingResult bindingResult){
if (bindingResult.hasErrors()){
return bindingResult.getFieldError().getDefaultMessage();
}