为什么SpringMVC可以实例化Abstractclass?

Why Spring MVC can instantiate Abstract class?

这可能是个愚蠢的问题。在 java 中我们不能实例化抽象 类。所以我们不能这样做: AbstractClass abstractClass = new AbstractClass() abstractClass.method();

但是在Spring我们可以做到:

@Autowired
AbstractClass abstractClass;
abstractClass.method();

为什么?

Spring 将在其上下文中搜索与所需类型匹配的实现。 因此,如果您有一个从 AbstractClass 扩展而来的组件(@Component、@Service、@Repository...)ConcretClass,那么这个组件将被注入。