我正在嘗試在@KafkaListener方法上使用 spring 驗證注釋。我正在嘗試以下操作:
@Component
@Validated
public class Consumer {
@KafkaListener(topics = "${app.kafka.consumer.topic}", groupId = "${spring.kafka.consumer.group-id}")
public String consume(@Payload @Valid @NotNull RequestObj request,
@Header(KafkaHeaders.RECEIVED_TOPIC) @Valid @NotEmpty String topic) {
...
}
}
它似乎不起作用,這意味著@NotEmpty未檢查注釋。
我還配置了檔案中提到的配置:
@Configuration
@EnableKafka
public class Config implements KafkaListenerConfigurer {
@Autowired
private LocalValidatorFactoryBean validator;
...
@Override
public void configureKafkaListeners(KafkaListenerEndpointRegistrar registrar) {
registrar.setValidator(this.validator);
}
}
但它只影響有效載荷部分。
我想要實作的目標是否得到實際支持?
謝謝你的幫助。
uj5u.com熱心網友回復:
僅有效負載支持內置驗證。
但是,@Header有一個required屬性,默認情況下為 true,因此null值將被拒絕。
然而,RECEIVED_TOPIC永遠不會null。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/363548.html
