欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > 你还在用if做条件验证吗?我们尝试使用@Validated,它更优雅!

你还在用if做条件验证吗?我们尝试使用@Validated,它更优雅!

日期:2023-10-06 08:04

你还在用if做条件验证吗?

请先看一下下面的代码:(简单的例子,代码不规范)

@ApiOperation("添加用户")
@PostMapping("/addUser")
公共 结果Vo insert(@ApiParam("用户信息实体")@RequestBody用户user){
if(user.getUserName!= null){
       BusinessException("用户名不能为空");
 }
if(user.getUserPhone!=null){
   new BusinessException("用户电话号码不能为空 ");
}
if( user.getUserPhone().length()){
BusinessException ("用户电话号码格式不规范");
}

<new ResultVo(userService.insert(user)) ;
}

上面的代码主要是对用户实体进行条件验证。

但是这么多if,纯粹是新手写的,也让代码显得臃肿、难看、不优雅!

接下来,让我们学习如何使用优雅的参数验证@Validated

1。优雅的参数验证@Validated

@Valid 和 @Validated 是 spring Validation 框架提供的参数验证函数。

1。 @Valid 和 @Validated
的用法(区别)

两者的主要功能是它们作为标准的 JSR-303 规范。检查控制器输入参数是否符合规格时,可使用@Validated@Valid进行基本验证功能。差别不大。但两者在分组、标注地点、嵌套验证等功能上有所不同:

@有效:

@Valid注解用于验证,所属包为:javax.validation.Valid

用于方法输入参数时,无法单独提供嵌套验证功能。 可用于成员属性(字段),提示验证框架执行嵌套验证。可以与嵌套验证注解@Valid一起使用来执行嵌套验证。

@已验证:

@Validated@Valid的封装,由Spring提供的验证机制使用。

用于方法输入参数时,无法单独提供嵌套验证功能。它不能用于成员属性(字段),也不能提示框架进行嵌套验证。可以与嵌套验证注解@Valid一起使用来执行嵌套验证。

2。介绍并使用@Validated参数验证

引入验证依赖包


<依赖>
<groupId>org.springframework.bootgroupId> <artifactId>spring-boot-启动器artifactId>
依赖项>

<依赖项>
<groupId >javax.validationgroupId>
<artifactId>validation-apiartifactId>
<版本>2.0.1.最终版版本 >
依赖项>

<依赖项>
<groupId>org. hibernate.validatorgroupId>
  TArtifactid > 休眠验证器artiFactid>
依赖项>

找到自己的实体类并定义要验证的参数

关灯