簡體   English   中英

Spring Cloud Stream驗證

[英]Spring Cloud Stream validation

如何使用標准的基於Spring注釋的驗證在消息偵聽器中使用Spring Cloud Stream框架執行驗證?

嘗試了不同的情況,使用@Valid @Payload作為傳入對象,嘗試使用@Validated on entity后處理器的方法驗證,但它沒有幫助。

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

這是Spring Cloud Stream v2.1.0的新功能: GitHub上的問題:“為流監聽器添加(javax。)驗證支持”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM