Spring 集成 JSON 到带有 @Valid 的对象

Spring Integration JSON to Object with @Valid

我有一个用例,我在 channel 上收到 json,使用内置 Transformers.fromJson(MyDTO.class).

转换为 DTO

DTO 有 javax.validation 注释。如何触发验证?

一种方法是写一个validator class 并在转换后调用validate(MyDTO myDTO)?是否有对此类用例的内置支持以在转换步骤期间触发 javax.validations

好吧,有一种方法可以使用验证器注册 DefaultMessageHandlerMethodFactory 的自定义 IntegrationContextUtils.MESSAGE_HANDLER_FACTORY_BEAN_NAME bean,然后让 @ServiceActivator@Validated@Valid) 在你的 MyDTO payload 参数上注释,但我觉得这会有点麻烦。

考虑实施一些 GenericSelector,它将对 filter() EI 方法中使用的有效负载执行 Validator.validate()

我们还有一张开箱即用的票:https://jira.spring.io/browse/INT-4068