Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我们有一个在向下游发送之前需要验证和处理的对象列表。我可以使用 bean 验证器来检查有效性并从列表中删除无效的项目。使用验证器更改输入状态是否正确?
是否应该在业务逻辑中过滤/更改列表,或者我可以有一个自定义验证器吗?
假设是验证读取但从不修改对象。
这是确保验证者独立并因此可组合的唯一方法。否则,一个验证器引入的更改可能会使对象从另一个验证器的角度来看无效,反之亦然。这也意味着在同一个对象上多次运行验证可能会产生不同的结果(这通常没有意义,在外部世界发生变化的特定情况之外)。
因此,虽然没有什么能阻止您在约束验证器中修改对象 - 似乎“正确”(无论它意味着什么)方法是将过滤留在业务逻辑端,同时在验证中保留特定的验证规则层。