Spring Validation验证框架
关于请求参数有效性,必须在服务器端收到数据的第一时间(在控制器中)进行检查,例如,注册时,必须填写手机号码,并且,手机号码必须是有效的手机号码格式,不可以是a
、111
这种明显格式有误的数据!
可以在控制器中添加判断的逻辑,例如:
// http://localhost:8080/api/v1/users/student/register?phone=13100131001&password=1234&inviteCode=JSD1912-876840
@RequestMapping("/student/register")
public R regStudent(StudentRegisterDTO studentRegisterDTO) {
if (studentRegisterDTO.getPhone() == null) {
// 视为手机号码为空,将抛出异常,不允许注册
}
if (!studentRegisterDTO.getPhone().matches("")) {
// 视为手机号码格式错误,将抛出异常,不允许注册
}
userService.regStudent(studentRegisterDTO);
return R.ok();
}
但是,这种验证方式很麻烦,在项目代码中增加的代码量也非常多,如果同一种请求参数在多处会被检查,还会存在许多重复的验证代码!使用Spring Validation框架就可以解决这个问题!
先在父级的straw
项目的pom.xml
中添加:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework