假设我有A类:

public class A {
    @Autowire embeddedKafka;
}


假设以下类扩展了A:

@SpringBootTest
public class B extends A {

}


现在,当创建类B的对象时,将调用类A的构造函数。我想知道embeddedKafka实例是否为autowired吗?
在我的测试中,这就是我正在观察的。我的问题是这样的:当没有创建A实例时,Spring为什么会自动装配embeddedKafka实例?

编辑:

最佳答案

B扩展了A。因此,B的实例就是A的实例。因此,当创建B的实例时,就会创建A的实例(就像当您制造一个女婴时,您还可以使一个人类婴儿一样,因为女孩是人类)。您自己告诉了它:将调用类A的构造函数。

如果正在调用类构造函数,则根据定义,正在构造该类的实例。

08-18 19:32