2

在我的 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 是否隐含在这种依赖中?

4

1 回答 1

3

Bean 验证和 Hibernate 验证器

Hibernate ValidatorBean Validation 1.1规范的参考实现。

例如,检查Maven Repository,您会发现该hibernate-validator工件确实包含validation-api工件作为依赖项。

Bean 验证和 Java EE 7 API

Bean Validation 在javax.validation包和子包中定义。

Java EE 7 是一个综合规范,除其他规范外,它还包括 Bean Validation 1.1 规范。

这意味着javaee-api工件包括javax.validation包和子包。但是,没有提供 Bean 验证的实现作为该工件的依赖项。

另一方面,一些容器,例如 WildFly 和 GlassFish,提供了 Hibernate Validator 依赖项(或任何其他 Bean Validation 实现)以符合 Java EE 7 规范。在这种情况下,如果您想使用来自 Hibernate Validator 的特定内容(即来自org.hibernate.validator包或子包的内容),则需要添加具有范围的hibernate-validator依赖项。provided

否则,如果您不使用 Hibernate Validator 中的任何特定内容,则 javaee-api依赖项应该没问题。

于 2016-03-04T15:05:53.483 回答