标记用于验证级联的属性、方法参数或方法返回类型。验证属性、方法参数或方法返回类型时,将验证在对象及其属性上定义的约束。这种行为是递归应用的。
参数校验是我们程序开发中必不可少的过程。用户在前端页面上填写表单时,前端会校验参数的合法性,将数据传送到后端时,为了防止恶意操作,保持程序的健壮性,后端同样需要对数据进行校验。后端参数校验最简单的做法是直接在业务方法里面进行判断,当判断成功之后再继续往下执行。但这样带给我们的是代码的耦合,冗余。当我们多个地方需要校验时,我们就需要在每一个地方调用校验程序,导致代码很冗余,且不美观。那么如何优雅的对参数进行校验呢?JSR303就是为了解决这个问题出现的。
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。Spring MVC 也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。
JSR 303 内置的约束规则: