可能这是一个愚蠢的问题。在Java中,我们无法实例化抽象类。所以我们不能做:AbstractClass abstractClass = new AbstractClass()abstractClass.method();
但是在春季,我们可以:
@Autowired
AbstractClass abstractClass;
abstractClass.method();
为什么?
最佳答案
Spring将在其上下文中搜索与所需类型匹配的实现。
因此,如果您有一个从AbstractClass扩展来的组件(@ Component,@ Service,@ Repository ...),那么ConcretClass会被注入。