Ioc 容器:依赖注入、依赖查找?

Ioc Container: Dependency Injection, Dependency Lookup?

我正在尝试更多地了解 Spring 框架,我指的是 "Pro Spring 3" 书。

我在书中看到以下部分:

它说一般来说 IoC 可以分解成两个部分,即: Dependency InjectionDependency Lookup.

对此,我有如下疑问:

1) Spring 是否同时提供 Dependency Injection ,Dependency Lookup ?

2) 所有 Ioc 容器是否都具有这两个系统,即:Dependency InjectionDependency Lookup

3)如果Spring同时提供了Dependency InjectionDependency Lookup,那么说Spring是DI框架是不是错了,当它同时具备这两个时能力?

1:是的,Spring同时提供依赖注入和依赖查找。您可以让 Spring 使用例如 @Autowired 注释注入依赖项,您还可以通过调用 getBean 之一手动从 Spring 的 ApplicationContext 中查找组件] 方法。

关于概念 "inversion of control" (IoC) 的主要理解是 Spring 为您完成工作,而不是相反:您让 Spring 创建实例您的组件,然后让 Spring 注入依赖项,而不是相反,您自己编写代码来创建实例和查找依赖项。

2:不一定。

3:Spring可以做依赖注入(DI),所以是一个DI框架。仅仅因为它还可以做其他事情(例如允许您显式查找组件)不会突然不再使它成为 DI 框架。