我们可以将动态 属性 放入@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}'
是否可以在@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}'