Bean 验证和更改集合

Bean Validation and altering the collection

我们有一个在发送到下游之前需要验证和处理的对象列表。我可以使用 bean 验证器来检查有效性并从列表中删除无效的项目吗?使用验证器更改输入状态是否正确?

列表应该 filtered/altered 在业务逻辑中还是我可以有一个自定义验证器吗?

假设验证读取但从不修改对象。

这是唯一的方法来确保验证器是独立的,因此是可组合的。否则,一个验证器引入的更改可能会使对象从另一个验证器的角度来看无效,反之亦然。这也意味着 运行 对同一个对象进行多次验证可能会给出不同的结果(这通常没有意义,除了外部世界发生变化的特定情况)。

因此,虽然没有什么可以阻止您修改约束验证器中的对象 - 似乎“正确”(无论它意味着什么)方法是将过滤留在业务逻辑端,同时保持特定的验证层中的验证规则。