2.1 基本说明
springMVC基于JSR303规范进⾏校验。
规范的相关说明如下:
JSR是Java Specification Requests的缩写,意思是Java 规范提案 。
JSR-303 是JAVA EE 6 中的⼀项⼦规范,叫做Bean Validation。
Hibernate Validator是 Bean Validation的参考实现 。
Hibernate Validator提供了JSR 303 规范中所有内置 constrain(约束)的实现,除此之外还有⼀些附加的constraint(约束)。
2.2 详细说明
关于springMVC请求参数校验,涉及⼏个对应的名词,如下是:
名词说明
constraint(约束)对参数的校验约束注解,如@NotNull表⽰参数不可以为Null
校验注解为元素加上约束后,有时候需要在参数前加上校验注解来开启验证。
相关注解有@Valid和@Validated,如没有⽤到注解独有的特性(分组、嵌套)等,⽤哪个注解都⼀样。需注意不是所有的校验都需要开启校验,如下不需要加上校验注解:saveWithRequestParam(@NotNull(message = "⽤户代码不可为空") String userCode)但是需要在Controller类上加上注解@Valid或@Validated
JSR303规范⾏业规范标准,包括校验的constraint(约束,如@NotNull)和开启校验注解@Valid等体现:代码中体现为注解、接⼝,⽆具体实现代码
jar包:jakarta.validation-api-2.0.2.jar
约束注解:straints包下注解+hibernate增强注解org.straints
校验注解:javax.validation.Valid
Hibernate Validator Hibernate对JSR303规范中的约束constraint的具体代码实现jar包:hibernate-validator-6.0.20.Final.jar
增强:在原有JSR303的constraint(约束)中增加了约束(如@Range)
spring JSR303spring对JSR303的包装,对原有的校验进⾏了增强
增强:分组校验、顺序校验
缺点:不⽀持嵌套校验
约束注解:straints包下注解+hibernate增强注解
org.straints
校验注解:org.springframework.validation.annotation.Validated
增强说明:所谓的包装和增强,只是将@Valid注解扩展为@Validated注解。约束注解和JSR303⼀样。
2.3 关系图spring mvc和boot区别
⼀图胜千⾔。参数校验的相关说明,关系图如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论