Java Spring Boot找不到嵌入的Kafkabroker Bean
我正在为卡夫卡写一篇集成测试。为此,我使用了Spring的Java Spring Boot找不到嵌入的Kafkabroker Bean,java,spring,spring-boot,apache-kafka,Java,Spring,Spring Boot,Apache Kafka,我正在为卡夫卡写一篇集成测试。为此,我使用了Spring的EmbeddedKafka。这是我的班级: @Component @EmbeddedKafka( partitions = 1, topics = {"Topic}, brokerProperties = {"listeners=PLAINTEXT://localhost:9091", "port=9091"}) public class KafkaConsumerTestUtils { @Autowired
EmbeddedKafka
。这是我的班级:
@Component
@EmbeddedKafka(
partitions = 1,
topics = {"Topic},
brokerProperties = {"listeners=PLAINTEXT://localhost:9091", "port=9091"})
public class KafkaConsumerTestUtils {
@Autowired private EmbeddedKafkaBroker embeddedKafka;
....
}
我正在用@SpringBootTest
注释的类中自动连接这个utils类。下面是我得到的错误:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.kafka.test.EmbeddedKafkaBroker' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1646)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1205)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1166)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
... 66 more
奇怪的是,当我在我的任何测试类中自动连线嵌入kafkabroker
时,它被创建,测试运行正常
有人能帮我解决这个问题吗?不太清楚为什么,但看起来你没有按照预期的方式使用它 @EmbeddedKafka是可以在运行基于Spring Kafka的测试的测试类上指定的注释 文件规定:
The typical usage of this annotation is like:
@RunWith(SpringRunner.class)
@EmbeddedKafka
public class MyKafkaTests {}
事实上,这就是问题所在。我通过将@SpringBootTest添加到我的utils类中修复了。谢谢