数据校验
前端提交请求,controller接收数据时,通常要对数据进行校验,否则会引发错误
如:
- 用户名、密码不能为空,并且要有长度限制
- 手机号校验
JSR
JSR是Java Specification Requests 的缩写
可以校验bean,称之为:Bean Validation
JSR303
JSR303 是⼀项标准,只提供规范不提供实现,规定⼀些校验规即校验注解
是:Bean Validation 1.0
功能如:@Null,@NotNull,@Pattern,位于 javax.validation.constraints 包下
JSR349
是该规范的升级版本,Bean Validation 1.1
JSR380
是该规范的升级版本,Bean Validation 2.0
需要java8或以上版本,利用java8中新增的特性,如注解类型,支持新的类如:Optional 和 LocalDate
Hibernate Validation
是对上面规范的实现,并增加了⼀些其他校验注解
使用方法详见 链接
版本关系
JSR303伴随着JAVAEE 6在2009年发布,Hibernate实现版本4.3.1.Final,Apache BVal实现版本0.5JSR349伴随着JAVAEE 7在2013年发布,Hibernate实现版本5.1.1.Final,Apache BVal实现版本1.1.2JSR380伴随着JAVAEE 8在2017年8月发布,完全兼容低版本的JAVASE,Hibernate实现版本6.0.1.Final,Apache BVal实现版本2.0.3(不太确定)
如果使用2.0规范,hibernate必须选择6.0.1以上版本
Spring Validation
Spring Validation 对 Hibernate Validation 进⾏了⼆次封装
参考:
https://www.cnblogs.com/passedbylove/p/11395911.html