【发布时间】:2022-01-20 03:38:34
【问题描述】:
我有以下定义:
@KafkaListener(
topics = "${app.kafka.eventTopic}",
groupId = "${app.kafka.consumerGroupId}",
concurrency = "${app.kafka.concurrency}"
)
我在我的 yaml 文件中定义了这些配置属性,例如:
app:
kafka:
eventTopic: topicName
consumerGroupId: groupName
concurrency: 10
我是 SpringBoot 的新手,我看到一些 SO 帖子声称 ${app.kafka.eventTopic} 之类的语法不能像 @Value() 注释那样工作,需要 ConfigurationProperties 类将属性值“翻译”为 Java变量。如果 @Value 注释是这样,那么这里对 KafkaListener 注释内容的工作方式是否相同?
【问题讨论】:
-
测试一下就知道了。注解属性中的占位符的替换需要添加到注解的注解处理器中。注释只不过是元数据。所以它需要在处理器中,如果它不在处理器中,则不受支持。
标签: spring spring-boot apache-kafka spring-kafka