Можем ли мы добавить свойство Dynami c в @KafkaListener (propertyes = {max.pool.size.ms: тернарный оператор - PullRequest
0 голосов
/ 10 июля 2020

Возможно ли использовать динамическое c тернарное условие в @KafkaListener?

1 Ответ

2 голосов
/ 10 июля 2020

Да; см. этот тестовый пример .

@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}'
...