Java 如何在@ContextConfiguration初始值设定项之前启动kafka测试容器?

Java 如何在@ContextConfiguration初始值设定项之前启动kafka测试容器?,java,apache-kafka,junit5,spring-boot-test,testcontainers,Java,Apache Kafka,Junit5,Spring Boot Test,Testcontainers,我想启动kafka测试容器并获取其引导服务器: @SpringBootTest @ContextConfiguration(classes = {TestConfig.class, MyApplication.class}, initializers = MyIntegrationTest.Initializer.class) @Testcontainers public class MyIntegrationTest { @Container private static f

我想启动kafka测试容器并获取其引导服务器:

@SpringBootTest
@ContextConfiguration(classes = {TestConfig.class, MyApplication.class}, initializers = MyIntegrationTest.Initializer.class)
@Testcontainers
public class MyIntegrationTest {

    @Container
    private static final KafkaContainer KAFKA = new KafkaContainer();

static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {

    @Override
    public void initialize(@NotNull ConfigurableApplicationContext configurableApplicationContext) {
        TestPropertyValues values = TestPropertyValues.of(
            "spring.kafka.consumer.bootstrap-servers=" + KAFKA.getBootstrapServers(),
            "spring.producer.bootstrap-servers=" + KAFKA.getBootstrapServers()
        );
        values.applyTo(configurableApplicationContext);
    }
}

唯一的问题是在调用对象之后调用
start()
方法

private static void startKafkaContainer() {

        KafkaContainer kafkaContainer = new KafkaContainer();
        kafkaContainer.start();

    }
更多信息请检查这个

private static void startKafkaContainer() {

        KafkaContainer kafkaContainer = new KafkaContainer();
        kafkaContainer.start();

    }