[英]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.