简述
开发过restful风格接口的道友,一看到hibernate validator可能都知道这是用来干啥的了,如果还不知道,请看下图,马上就明白。。。
检验参数
1、新建一个spring boot项目,使用2.5.2版本;
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2、导入validator的jar包
在maven仓库(
https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator)搜索一看,最新版本已经7.0.1.Final了,肯定安排上啊。
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
3、新建一个测试接口类HelloController.java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
@RestController
@Valid
public class HelloController {
@GetMapping(value = "hello")
public void get(@NotBlank(message = "username不能为空") @RequestParam String username){
System.out.println("username:" +username);
}
}
4、启动项目,测试接口及其参数校验
启动项目奇怪问题来了,
居然访问成功且不报错@Valid不行,那就用@Validated试一下
还是没检验到此时,我把版本降低一点,来看看奇迹。
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
嗯嗯,此时就可以正常检验参数了:
正常检验 输入参数值虽说maven帮我们解决了蛮多的jar问题,jar版本问题还蛮考验开发经验以及思考意识的。
在此记录一文,以作铭记。
网友评论