Spring загрузка @KafkaListener не слушает имя темы с помощью SPEL, как указано в фреймворкеJAVA

Программисты JAVA общаются здесь
Anonymous
Spring загрузка @KafkaListener не слушает имя темы с помощью SPEL, как указано в фреймворке

Сообщение Anonymous »

Я разработал прослушиватель Kafka. Вот мои разные классы:

Код: Выделить всё

Class KafkaProperties {

public String topicZZZ;
public String groupId;
...
}

Class KafkaConfig {

@Bean
@Primary
public KafkaProperties populateKafkaProperties() {
KafkaProperties obj = new KafkaProperties();
obj.settopicZZZ("kafkaTopicName");

return obj;
}
}

Class B {

@Autowired
KafkaConfig kafkaConfig;

@Autowired
KafkaProperties kafkaProps;

@KafkaListener(topics = {"#{'kafkaProps.topicZZZ'}" },
groupId = "#{'kafkaProps.groupId'}", containerFactory = "onlineKafkaListenerContainerFactory")
public void consumeOnlineMessages() {

log.info();

}
}
Когда я запускаю свое приложение, ошибок нет, но кажется, что оно не распознает название темы, поскольку я не могу принимать какие-либо сообщения.
Я вижу эту строку в журналах:

Код: Выделить всё

Subscribed to topic(s): kafkaProps.topicZZZ
Но когда я передаю имя темы из файла свойств, используя приведенное ниже значение в @kafkaListener, я получаю правильное имя темы.

Код: Выделить всё

@KafkaListener(topics = {"${kafka.topicNamefromPropFile}"  },
groupId = "${kafka.groupid}",
Итак, ясно, что приведенное ниже не работает:

Код: Выделить всё

@KafkaListener(topics = {"#{'kafkaProps.topicZZZ'}" },
Я следовал семантике из документов Spring.
Там это упоминается, как мы можем использовать, как показано ниже, но это ошибка, связанная с синтаксическим анализом заклинания. выражение:

Код: Выделить всё

@KafkaListener(topics = "#{someBean.someProperty}",
groupId = "#{someBean.someProperty}.group")
РЕДАКТИРОВАНИЕ: Я вижу, что значения ConsumerConfig загружаются правильно. Если кому-то нужно увидеть какое-либо свойство оттуда, дайте мне знать.
Может кто-нибудь помогите мне правильно использовать название темы в прослушивателе.

Подробнее здесь: https://stackoverflow.com/questions/782 ... as-mention

Вернуться в «JAVA»