Validated使用

导包

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

常用效验方式

  1. 在对象上添加注解@RequestBody@Validated,在对象实体类中国添加相关效验注解(源于javax.validation.constraints)。
  2. 单个参数效验方式(常用语get请求),controller类上添加@Validated,标识整个类可以进行注解校验;方法参数上添加校验注解。

几个判空注解

  • @NotNull : 适用于基本数据类型(Integer,Long,Double等等),当 @NotNull 注解被使用在 String 类型的数据上,则表示该数据不能为 Null(但是可以为 Empty)
  • @NotBlank : 适用于 String 类型的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后 size > 0
  • @NotEmpty : 适用于 String、Collection集合、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null 或者 长度为 0

分组效验

场景1
需求:假设我在使用登录分组校验的时候,设定用户名不能为空和密码最少为2位的验证。而在添加分组设定添加时用户名不能为空和密码最少为6位的验证。

点击查看代码
@Data
public class LoginVo {

 @ApiModelProperty(value = "用户名称")
 @NotEmpty(message = "用户名不能为空!",groups = LoginModel.class)//LoginModel.class和SaveModel.class都创建成接口,且需要继承Default
 @NotEmpty(message = "添加时用户名不能为空!",groups = SaveModel.class)
 private String userName;

 @ApiModelProperty(value = "密码")
 @Size(min = 2,message = "密码最少为2位",groups = LoginModel.class)
 @Size(min = 6,message = "密码最少为6位",groups = SaveModel.class)
 private String password;
}

在controller的接口上加上@Validated注解,参数就加上你需要根据那种规则来校验,参数可以设置多个分组,从前往后匹配,默认分组是Default.class。

点击查看代码
@ApiOperation(value = "登录以后返回token")
  @PostMapping(value = "/login")
  public Result login(@RequestBody @Validated(LoginModel.class) LoginVo loginVo) {
    String token = userService.login(loginVo.getUserName(), loginVo.getPassword());
    return Result.success(token);
  }
posted @   Full98  阅读(151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示