在 Spring Kafka 中,我是不是需要将 @EnableKafka 注释添加到我的应用程序中?

Posted

技术标签:

【中文标题】在 Spring Kafka 中,我是不是需要将 @EnableKafka 注释添加到我的应用程序中?【英文标题】:In Spring Kafka, do I need to add the @EnableKafka annotation to my application?在 Spring Kafka 中,我是否需要将 @EnableKafka 注释添加到我的应用程序中? 【发布时间】:2020-07-30 02:05:25 【问题描述】:

我看到有些人在他们的 Spring Boot 应用程序中添加了@EnableKafka,我想知道为什么。我有一个工作的 spring boot kafka 生产者和消费者,我没有使用@EnableKafka。那么,为什么人们需要显式添加呢?

谢谢。

【问题讨论】:

【参考方案1】:

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

您可以通过提供@SpringBootApplication(exclude=KafkaAutoConfiguration.class) 排除自动配置来进行测试,Spring boot 不会自动为您配置 Kafka。

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

【讨论】:

【参考方案2】:

如果 Spring Boot 在类路径上检测到 spring-kafka,则自动配置 @EnableKafka

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

【讨论】:

以上是关于在 Spring Kafka 中,我是不是需要将 @EnableKafka 注释添加到我的应用程序中?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Kafka KafkaListener 注释是不是能够将配置属性作为主题名称?

给kafka配置外部连接

Spring数据Cassandra可以与动态模​​型和键空间一起使用吗

spring-kafka 监听器签名

Docker Compose 与 Zookeeper、Kafka、Redis 和 Java Spring Boot

Spring Batch Kafka Kafka 到数据库作业