【问题标题】:How to disable `@EnableKafka` in Spring Boot tests?如何在 Spring Boot 测试中禁用“@EnableKafka”?
【发布时间】:2020-02-15 07:44:21
【问题描述】:

我想运行我的集成测试,但我不知道如何禁用 @EnableKafka

我的应用是这样的:

@SpringBootApplication
@EnableKafka
public class MyApplication {

【问题讨论】:

  • 你可以使用@Embeddedkafka注解或者EmbeddedKafkaRule?
  • @Hatice 我想做相反的事情 - 在我的测试中我不需要 kafka 因此 - 我想有一种方法可以轻松禁用它。
  • 你不需要 @EnableKafka 那里 - 如果 spring-kafka 在类路径上,Boot 会自动为你配置它;所以那里是多余的。要为测试禁用它,您需要禁用 kafka 的自动配置。参考Boot documentation

标签: java spring spring-boot spring-kafka spring-boot-test


【解决方案1】:

Spring Boot 带有 Spring Kafka 的自动配置,因此您不需要使用显式的 @EnableKafka。您在测试中需要做的只是排除KafkaAutoConfiguration

@SpringBootTest("spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration")

【讨论】:

    【解决方案2】:

    您可以为您的 Kafka 配置创建另一个配置文件。

    @ConditionalOnProperty("kafka.enabled")
    @EnableKafka
    @Configuration
    public class KafkaConfiguration { }
    

    这样,您可以在 test.properties 文件中禁用此属性。

    查看solution

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-08
      • 2023-01-23
      • 2016-01-02
      • 2020-04-05
      • 2019-03-30
      • 2018-07-16
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多