⽇常项⽬开发中,对于前端提交的表单,后台接⼝接收到表单数据后,为了程序的严谨性,通常后端 会加⼊业务参数的合法校验操作来避免程序的⾮技术性 bug,这⾥对于客户端提交的数据校验, SpringBoot 通过 spring-boot-starter-validation 模块包含了数据校验的⼯作。
这⾥主要介绍 Spring Boot 中对请求数据进⾏校验,相关概念如下
JSR303 :JSR303 是⼀项标准,只提供规范不提供实现,规定⼀些校验规范即校验注解,如 @Null,@NotNull,@Pattern,位于 javax.validation.constraints 包下。JSR-349 是其升级版 本,添加了⼀些新特性。
Hibernate Validation :Hibernate Validation 是对这个规范的实现,并增加了⼀些其他校验注 解,如@Email,@Length,@Range 等等。
Spring Validation :Spring Validation 对 Hibernate Validation 进⾏了⼆次封装,在 Spring MVC 模块中添加了⾃动校验,并将校验信息封装进了特定的类中。
1 环境配置
实现参数校验,程序必须引⼊ spring-boot-starter-validation 依赖,只是在引⼊ spring-bootstarter-web 依赖时,该模块会⾃动依赖 spring-boot-starter-validation,所以程序中引⼊ springboot-starter-web 会⼀并依赖spring-boot-starter-validat