我在容器工厂做了autoStartup(false)
,但不确定应该在哪里注入KafkaListenerEndpointRegistry
。
我不希望用户在构建时进行连接。春季启动应用程序完全启动后,它应该连接Kafka
主题。
答案 0 :(得分:2)
您应该在类中使用KafkaListenerEndpointRegistry
注释的方法注入KafkaListener
,因为来自文档
为@KafkaListener注释创建的侦听器容器不是应用程序上下文中的bean。而是使用类型为KafkaListenerEndpointRegistry
的基础结构bean注册它们。
因此,通过使用此KafkaListenerEndpointRegistry
实例,您可以管理容器启动/停止here的生命周期
示例:
@Autowired
private KafkaListenerEndpointRegistry registry;
...
@KafkaListener(id = "myContainer", topics = "myTopic", autoStartup = "false")
public void listen(...) { ... }
...
registry.getListenerContainer("myContainer").start();