Код: Выделить всё
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(topics = {"${kafka.topicNamefromPropFile}" },
groupId = "${kafka.groupid}",
Код: Выделить всё
@KafkaListener(topics = {"#{'kafkaProps.topicZZZ'}" },
Там это упоминается, как мы можем использовать, как показано ниже, но это ошибка, связанная с синтаксическим анализом заклинания. выражение:
Код: Выделить всё
@KafkaListener(topics = "#{someBean.someProperty}",
groupId = "#{someBean.someProperty}.group")
Может кто-нибудь помогите мне правильно использовать название темы в прослушивателе.
Подробнее здесь: https://stackoverflow.com/questions/782 ... as-mention