我们可以将动态 属性 放入@KafkaListener( 属性es = {max.pool.size.ms: 三元运算符

Can we have dynamic property into @KafkaListener( propertyes = {max.pool.size.ms: ternary operator

是否可以在@KafkaListener 中加入动态三元条件?

是;参见 this test case

@KafkaListener(id = "#{'qux'}", topics = "annotated4",
        containerFactory = "kafkaManualAckListenerContainerFactory", containerGroup = "qux#{'Group'}",
        properties = {
                "max.poll.interval.ms:#{'${poll.interval:60000}'}",
                ConsumerConfig.MAX_POLL_RECORDS_CONFIG + "=#{'${poll.recs:100}'}"
        })

在这种情况下,它加载 poll.interval 属性,如果缺少,则使用 60000。

您可以使用任何 SpEL 表达式,例如

#{@someBean.someProperty}

#{'${foo.prop}' == null ? '${bar.prop:60000}' : '${foo.prop}'