在 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 注释是不是能够将配置属性作为主题名称?
Spring数据Cassandra可以与动态模型和键空间一起使用吗