文档解释
JSR-303的有效变体,支持验证组的规范。设计用于方便使用Spring的JSR-303支持,但不是特定于JSR-303的。例如,可以与Spring MVC处理程序方法参数一起使用。通过SmartValidator的验证提示概念提供支持,验证组类充当提示对象。
也可以与方法级验证一起使用,指示应该在方法级验证特定类(充当相应验证拦截器的切入点),但也可以选择指定用于注释类中方法级验证的验证组。在方法级别应用此注释允许覆盖特定方法的验证组,但不作为切入点;然而,类级注释对于启动特定bean的方法验证是必要的。也可以用作自定义原型注释或自定义组特定验证注释上的元注释。
技术方案
参数校验是我们程序开发中必不可少的过程。用户在前端页面上填写表单时,前端会校验参数的合法性,将数据传送到后端时,为了防止恶意操作,保持程序的健壮性,后端同样需要对数据进行校验。后端参数校验最简单的做法是直接在业务方法里面进行判断,当判断成功之后再继续往下执行。但这样带给我们的是代码的耦合,冗余。当我们多个地方需要校验时,我们就需要在每一个地方调用校验程序,导致代码很冗余,且不美观。那么如何优雅的对参数进行校验呢?JSR303就是为了解决这个问题出现的。
相关内容
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。Spring MVC 也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。
JSR 303 内置的约束规则: