【问题标题】:Spring Cloud Stream validationSpring Cloud Stream 验证
【发布时间】:2018-05-18 12:00:09
【问题描述】:

如何使用基于标准 Spring 注解的验证在消息侦听器中使用 Spring Cloud Stream 框架执行验证?

尝试了不同的情况,使用 @Valid @Payloadfor 传入对象,尝试使用 @Validated 在实体上的方法验证后处理器,但没有帮助。

@StreamListener(MediaItemStream.ITEM_LIKED_CHANNEL)
public void handleLikeMessage(@Valid @Payload LikeInputDto like) {...

和

@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
    return new MethodValidationPostProcessor();
}

目前最好的方法是使用自定义服务进行验证,但它看起来并不理想..

@Log4j2
@Service
@AllArgsConstructor
public class LikeStreamHandler {

    private MediaEventMessagingService mediaEventMessagingService;
    private ValidationService validationService;

    @StreamListener(MediaItemStream.ITEM_LIKED_CHANNEL)
    public void handleLikeMessage(LikeInputDto like) {
        validationService.validate(like);

        log.debug("Handling LIKE message: {}", like);
        mediaEventMessagingService.processLikeEvent(like);
    }
}

【问题讨论】:

    标签: java spring validation spring-boot spring-cloud-stream


    【解决方案1】:

    这是Spring Cloud Stream v2.1.0的新特性:Issue on GitHub: "Add (javax.)Validation Support for Stream Listener"

    【讨论】:

      猜你喜欢
      • 2017-03-26
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      相关资源
      最近更新 更多