KafkaListenerEndpointRegistry

KafkaListenerEndpointRegistry

我在容器工厂上做了autoStartup(false),但是不确定应该在哪里注入KafkaListenerEndpointRegistry

我不希望用户在构建时进行连接。 Spring Boot应用程序完全启动后,它应该连接Kafka主题。

最佳答案

您应该使用带有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();

08-28 16:47