1

我正在研究将 JSR-303 与休眠验证器一起使用。我们希望能够对每个客户进行不同的验证,或者拥有一组基本约束并允许它们被覆盖。

我不确定这样做的最佳方法是什么。

对约束使用注释是不合适的,因为它们本质上是在模型中硬编码的。我知道我可以使用 XML 来外部化验证(创建指定约束映射文件的 META-INF/validation.xml)。但我不太确定如何轻松地为多个客户配置此功能。

我想我希望能够设置一个简单的属性,以便在我们部署它时使用一组完全不同的约束映射文件。

有任何想法吗?

4

1 回答 1

0

您可以ValidatorFactory使用客户特定的约束映射 XML 文件配置每个客户,如下所示:

ValidatorFactory validatorFactory = Validation
    .byDefaultProvider()
    .configure()
    .addMapping(...) //input stream with an XML constraint mapping
    .addMapping(...) //another input stream with an XML constraint mapping
    .buildValidatorFactory();

当您使用 Hibernate Validator 时,您还可以使用 API 进行编程约束声明来创建单独配置的验证器工厂。

于 2012-06-16T21:05:43.853 回答