首页 > 解决方案 > Spring - 依赖注入和@Autowire 之间的关系

问题描述

今天在一次采访中,面试官问我,“告诉我……什么是依赖注入,我们为什么要使用它?” . 对此,我回答了 DI 和 IoC 的传统定义,以及 DI 如何通过不使用 new 创建对象来帮助使代码松散耦合,并解释了在运行时使用拼写检查程序提供对象作为方法参数。

public class TextEditor {

private IocSpellChecker checker;

public TextEditor(IocSpellChecker checker) {
    this.checker = checker;
}

}

他似乎对我的书呆子回答不太满意,并问我一个依赖注入应该消除的实时问题,他还暗示它与 bean 实例化和内存优化有关。他还提到它与@Autowire。

经过数小时的谷歌搜索,我对此一无所知。问题的答案应该是什么?这些都是如何相关的?

标签: javaspring

解决方案


关于内存优化,我可以想象他的意思是 DI 有助于获取现有对象实例以供重用,而不是因为懒惰传递现有对象而创建新实例。(例如 Spring-)上下文管理您的 bean 并关心分配/注入。在此之前,您必须使用单例或将所有共享对象保留为静态或单例类中的成员,并且该类已从任何地方引用。


推荐阅读