Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring云流验证_Java_Spring_Validation_Spring Boot_Spring Cloud Stream - Fatal编程技术网

Java Spring云流验证

Java Spring云流验证,java,spring,validation,spring-boot,spring-cloud-stream,Java,Spring,Validation,Spring Boot,Spring Cloud Stream,如何使用基于标准Spring注释的验证在消息侦听器中使用框架执行验证 尝试了不同的情况,对传入对象使用@Valid@Payload,对实体使用@Validated尝试了方法验证后处理器,但没有帮助 @StreamListener(MediaItemStream.ITEM_LIKED_CHANNEL) public void handleLikeMessage(@Valid @Payload LikeInputDto like) {... 及 目前最好的方法只是使用定制服务进行验证,但它看起来并

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

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

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

目前最好的方法只是使用定制服务进行验证,但它看起来并不是我们想要的

@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);
    }
}

这是Spring Cloud Stream v2.1.0的一项新功能:

@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);
    }
}