使用 Hibernate Validator Engine 时需要 Bean Validation API?
Bean Validation API needed, when using Hibernate Validator Engine?
在我的 Java EE 7 OpenShift 项目中,我使用的是 javaee-api 7.0 版。对于我的模型,我添加了依赖验证-api 版本 1.1.0,但这还不够。然后我尝试了
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
<scope>provided</scope>
</dependency>
这行得通。
验证-api 是否隐含在这种依赖关系中?
Bean 验证和 Hibernate 验证器
Hibernate Validator is the reference implementation of the Bean Validation 1.1规范。
检查 Maven Repository, for example, and you'll realize the hibernate-validator
artifact does include the validation-api
工件作为依赖项。
Bean 验证和 Java EE 7 API
Bean 验证在 javax.validation
包和子包中定义。
Java EE 7 是一个 umbrella specification,除其他规范外,它还包括 Bean Validation 1.1 规范。
这意味着 javaee-api
工件包括 javax.validation
包和子包。但是,没有提供 Bean 验证的实现作为该工件的依赖项。
另一方面,某些容器(例如 WildFly 和 GlassFish)提供 Hibernate Validator 依赖项(或任何其他 Bean Validation 实现)以符合 Java EE 7 规范。在这种情况下,如果你想使用来自 Hibernate Validator specific 的东西(即来自 org.hibernate.validator
包或子包的东西),你需要添加 hibernate-validator
与 provided
范围的依赖关系。
否则,如果您不使用 Hibernate Validator 中的任何特定内容,javaee-api
依赖项应该没问题。
在我的 Java EE 7 OpenShift 项目中,我使用的是 javaee-api 7.0 版。对于我的模型,我添加了依赖验证-api 版本 1.1.0,但这还不够。然后我尝试了
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
<scope>provided</scope>
</dependency>
这行得通。 验证-api 是否隐含在这种依赖关系中?
Bean 验证和 Hibernate 验证器
Hibernate Validator is the reference implementation of the Bean Validation 1.1规范。
检查 Maven Repository, for example, and you'll realize the hibernate-validator
artifact does include the validation-api
工件作为依赖项。
Bean 验证和 Java EE 7 API
Bean 验证在 javax.validation
包和子包中定义。
Java EE 7 是一个 umbrella specification,除其他规范外,它还包括 Bean Validation 1.1 规范。
这意味着 javaee-api
工件包括 javax.validation
包和子包。但是,没有提供 Bean 验证的实现作为该工件的依赖项。
另一方面,某些容器(例如 WildFly 和 GlassFish)提供 Hibernate Validator 依赖项(或任何其他 Bean Validation 实现)以符合 Java EE 7 规范。在这种情况下,如果你想使用来自 Hibernate Validator specific 的东西(即来自 org.hibernate.validator
包或子包的东西),你需要添加 hibernate-validator
与 provided
范围的依赖关系。
否则,如果您不使用 Hibernate Validator 中的任何特定内容,javaee-api
依赖项应该没问题。