我 正在 使用 的 现有 代码 每次 都 使用 重复 代码 创建 新 方法 , 因为 它 使用 的@* * ManagedListener * * 是 使用 * * Java Spring Boot * * 为 不同 的 Kafka Topics 和 diff 配置 配置 配置 的 。
`@ManagedListener({configurations for Kafka topic-a})
method1(){
//logic to handle data
}
@ManagedListener({configurations for Kafka topic-b})
method2(){
//same logic as method1 copied
}
@ManagedListener({configurations for Kafka topic-c})
method3(){
//same logic as method1 copied again
}`
中 的 每 一 个
有 没有 一 种 方法 可以 让 监听 器 配置 为 不同 的 Kafka 主题 配置 , 这些 配置 都 直接 调用 method1 ? 我 正在 尝试 找到 一 种 方法 来 避免 重复 代码 。
我 试图 向 同一 个 方法 添加 多 个@managedListener 注解 , 但 似乎 必须 是 一 对 一 的 。
预期 的 结果 是 能够 接收 来自 多 个 不同 Kafka 主题 的 信息 。
2条答案
按热度按时间bt1cpqcv1#
我不确定
@ManagedListener
在这里的用法,因为@KafkaListener
更常用于设置Kafka使用者。这个注解已经支持使用多个主题(假设使用者配置工厂相同),所以无论如何都不需要多个方法。但是注解并不阻止您调用任何通用方法。
但是,我建议将所有公共逻辑提取到一个未注解为Kafka侦听器的函数中。
vh0rcniy2#
我不知道
@ManagedListener
是什么,但@KafkaListener
是一个@Repeatable
注解(可以在一个方法上放置多个注解)。