Spring Kafka-防止使用者在Spring Boot中进行构建期间连接Kafka主题

时间:2018-08-09 19:03:28

标签: java spring-boot spring-kafka

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

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

1 个答案:

答案 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();