为什么 Spring MVC 可以实例化抽象类?

MDP*_*MDP 2 java abstract-class spring-mvc

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

但是在 Spring 中我们可以这样做:

@Autowired
AbstractClass abstractClass;
abstractClass.method();
Run Code Online (Sandbox Code Playgroud)

为什么?

JEY*_*JEY 5

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