学习目标:
jsr303数据校验,为什么要学习这个技术呢,个人看法,唯一确保某些数据的合法性,比如在添加一个用户的时候用户的名称和密码肯定不能为空吧,即使在前端做了非空验证也不能保证用户会不会通过其他手段绕开前端的验证往数据库添加非法数据,所以在后台也需要做数据校验,双重保障。
开始实现:
第一步:导入依赖
<!--jsr303数据校验-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
第二步:先了解jsr303都有哪些注解,然后在实体类加上对于的注解,我这里写得少就演示一下效果
@NotBlank(message = "用户名不能为空")
private String username;
@Length(min = 4,max = 16,message = "密码格式不对")
private String password;
第三步:创建controller,@Valid 注解,表示我们对这个对象属性需要进行验证,
@PostMapping("saveUser")
public R saveUser(@RequestBody @Valid User user){
return userService.saveUser(user);
}
开始测试:项目里配置了swagger-ui对接口进行访问,如果什么都不输入就提交就会提示下面信息,不会添加带数据库里面去
如果输入用户名,密码只输入2位也是会校验不通过的,密码的校验规则是最少4位最多16位需要在这个范围内
如果输入准确无误后,就会插入数据库,看一下控制台也报错信息和提示信息,