outbounddto验证:在springboot中选择激活不同的验证模式/规则

ia2d9nvy  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(388)

我想绘制我的Map Order 为下游服务使用不同的DTO。它们接受相同的dto,但需要不同的字段。
例如,我的服务是a,我将发送 OutboundOrderDto 对于b和c,对于b, order.cart.shippingAddress 是强制性的,但对于c, order.cart.billingAddress 是强制性的。
如何使用springbootjsr303验证并为每个服务激活不同的规则,以便 sendOutbound(OutboundOrderDto dto) ,我只需要补充一下 @Validated 在arg之前捕获可能为空的字段错误并停止发送?
我现在看到的只是定义2个dto,但我认为可能有更简单的方法。

nfeuvbwi

nfeuvbwi1#

后来我发现可以使用验证组,如文档中所示:
https://beanvalidation.org/1.0/spec/#constraintdeclarationvalidationprocess-组序列
而且,正如@areus所建议的那样,根据https://reflectoring.io/bean-validation-with-spring-boot/#using-验证组对不同用例的对象进行不同的验证
引用:
小心使用验证组使用验证组很容易成为一种反模式,因为我们混合了关注点。对于验证组,被验证的实体必须知道它所使用的所有用例(组)的验证规则。在我关于bean验证反模式的文章中有更多关于这个主题的内容。

相关问题