假设我有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的构造函数。
如果正在调用类构造函数,则根据定义,正在构造该类的实例。