在春季卡夫卡中,我是否需要将@EnableKafka注释添加到我的应用程序中?

我看到有些人在他们的弹簧靴应用程序中添加了@EnableKafka,我想知道为什么。我有一个有效的弹簧靴卡夫卡生产者和消费者,我没有使用@EnableKafka。那么,为什么人们需要明确地添加它呢?

谢谢。


答案 1

这是因为Spring boot通过class(javadoc)为Kafka提供了自动配置。当您使用 或 时,Spring boot 会自动为您配置 Kafka。KafkaAutoConfiguration@EnableAutoConfiguration@SpringBootApplication

您可以通过提供 来排除自动配置来测试这一点,并且 Spring boot 不会自动为您配置 Kafka。@SpringBootApplication(exclude={KafkaAutoConfiguration.class})

如果您不使用Spring boot,那么您必须使用为您的Spring应用程序配置Kafka。@EnableKafka


答案 2

Spring Boot 在类路径上检测到 spring-kafka 时会自动配置。@EnableKafka

因此,在启动应用程序上不再需要它;仅当您的Spring应用程序不是启动应用程序时才需要它。


推荐