javax 验证器和 hibernate 验证器是如何相关的(如果它们是)?有什么区别?
How are javax validator and hibernate validator related(if they are)? and what is the difference?
我问的问题可能真的很简单(甚至很愚蠢)。
我在 spring-hibernate MVC 应用程序中使用验证。我正在使用来自 javax.validation 包的约束,例如@NotNull、@Pattern。当我使用诸如 @Email 之类的约束时,它是从 org.hibernate.validator.constraints 导入的。在验证器 class 中,我使用了 ValidatorFactory 和其他 classes 或接口(例如 Validation,Validator),所有这些都来自 javax.validation。我对此感到非常困惑。
然后我开始深入了解 javax 验证器和 hibernate 验证器包到底是什么,显然它们是 JSR303 的实现。
为了验证,我使用
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
为了让我更加困惑,我阅读了另一种实例化 ValidatorFactory 的方法,它是这样的 -
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class).configure().buildValidatorFactory();
而且效果很好!
请帮助我更好地理解这两个。
感谢您的帮助。
作为一大堆东西Java(安全,JDBC,JPA等等),有一个标准,调用bean validation,它定义了接口和标准 类(即 javax.validation
类),您可以在这些 类 和接口的几种实现之间进行选择(hibernate 验证器就是其中之一) ).
The landing page of hibernate validator 告诉它:
Hibernate Validator 5.x is the reference implementation Bean Validation 1.1!
我问的问题可能真的很简单(甚至很愚蠢)。
我在 spring-hibernate MVC 应用程序中使用验证。我正在使用来自 javax.validation 包的约束,例如@NotNull、@Pattern。当我使用诸如 @Email 之类的约束时,它是从 org.hibernate.validator.constraints 导入的。在验证器 class 中,我使用了 ValidatorFactory 和其他 classes 或接口(例如 Validation,Validator),所有这些都来自 javax.validation。我对此感到非常困惑。
然后我开始深入了解 javax 验证器和 hibernate 验证器包到底是什么,显然它们是 JSR303 的实现。
为了验证,我使用
ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
为了让我更加困惑,我阅读了另一种实例化 ValidatorFactory 的方法,它是这样的 -
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class).configure().buildValidatorFactory();
而且效果很好!
请帮助我更好地理解这两个。
感谢您的帮助。
作为一大堆东西Java(安全,JDBC,JPA等等),有一个标准,调用bean validation,它定义了接口和标准 类(即 javax.validation
类),您可以在这些 类 和接口的几种实现之间进行选择(hibernate 验证器就是其中之一) ).
The landing page of hibernate validator 告诉它:
Hibernate Validator 5.x is the reference implementation Bean Validation 1.1!