JSR 303 – Bean Validation 规范

本文介绍了BeanValidation框架及其核心组件,包括JSR303规范提供的基本约束及HibernateValidator提供的额外约束。此外,还提供了编程调用的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bean Validation 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回。

下载 JSR 303 – Bean Validation 规范 http://jcp.org/en/jsr/detail?id=303

Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。如果想了解更多有关 Hibernate Validator 的信息,请查看 http://www.hibernate.org/subprojects/validator.html

Bean Validation 中的 constraint

表 1. Bean Validation 中内置的 constraint
表 2. Hibernate Validator 附加的 constraint

一个 constraint 通常由 annotation 和相应的 constraint validator 组成,它们是一对多的关系。也就是说可以有多个 constraint validator 对应一个 annotation。在运行时,Bean Validation 框架本身会根据被注释元素的类型来选择合适的 constraint validator 对数据进行验证。

有些时候,在用户的应用中需要一些更复杂的 constraint。Bean Validation 提供扩展 constraint 的机制。可以通过两种方法去实现,一种是组合现有的 constraint 来生成一个更复杂的 constraint,另外一种是开发一个全新的 constraint。


++++++++++++++++++++++++++

编程调用:

40     public static void main(String[] args) {
41         Person p = new Person();
42         p.setAge(19999);
43         ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
44         Validator validator = factory.getValidator();
45         Set<ConstraintViolation<Person>> validate = validator.validate(p);
46         for (ConstraintViolation<Person> constraintViolation : validate) {
47             System.out.println(constraintViolation.getPropertyPath());
48             System.out.println(constraintViolation.getMessage());
49         }
50     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值