【发布时间】:2021-02-05 12:10:49
【问题描述】:
情况:您的 API 中使用了带有 DTO 对象的模块,以便其他项目在发送请求时可以重用。这些 DTO 类中确实有 bean-validation 注释。并且您想使用您的自定义验证来验证 DTO 通过请求“到达”。发送者通常不会验证传出数据 IIUC,并且可能对导入验证器和注释不感兴趣。
问题(?):bean-validation 以某种方式定义,其中 annotation 定义了谁实现它(这是不正确的,它应该在 imo 周围),有可能将空数组指定为 annotation 验证器(看起来像 hack)然后配对是通过手动 hashmap 操作而不是像服务加载器之类的东西来完成的。
你是怎么做到的?
- 您是否会将注释和它的验证器拆分到单独的模块中?
- 如何将它们绑定在一起?我认为应该可以使用
{}作为验证器,然后使用org.hibernate.validator.internal.metadata.core.ConstraintHelper#putValidatorDescriptors将它们绑定在一起,但我还没有测试它+也许有更好的方法...
【问题讨论】: