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
我有一个用例,我在 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