Ioc 容器:依赖注入、依赖查找?
Ioc Container: Dependency Injection, Dependency Lookup?
我正在尝试更多地了解 Spring 框架,我指的是 "Pro Spring 3" 书。
我在书中看到以下部分:
它说一般来说 IoC
可以分解成两个部分,即:
Dependency Injection
和 Dependency Lookup
.
对此,我有如下疑问:
1) Spring 是否同时提供 Dependency Injection
,Dependency Lookup
?
2) 所有 Ioc
容器是否都具有这两个系统,即:Dependency Injection
,Dependency Lookup
?
3)如果Spring同时提供了Dependency Injection
,Dependency Lookup
,那么说Spring是DI框架是不是错了,当它同时具备这两个时能力?
1:是的,Spring同时提供依赖注入和依赖查找。您可以让 Spring 使用例如 @Autowired
注释注入依赖项,您还可以通过调用 getBean
之一手动从 Spring 的 ApplicationContext
中查找组件] 方法。
关于概念 "inversion of control" (IoC) 的主要理解是 Spring 为您完成工作,而不是相反:您让 Spring 创建实例您的组件,然后让 Spring 注入依赖项,而不是相反,您自己编写代码来创建实例和查找依赖项。
2:不一定。
3:Spring可以做依赖注入(DI),所以是一个DI框架。仅仅因为它还可以做其他事情(例如允许您显式查找组件)不会突然不再使它成为 DI 框架。
我正在尝试更多地了解 Spring 框架,我指的是 "Pro Spring 3" 书。
我在书中看到以下部分:
它说一般来说 IoC
可以分解成两个部分,即:
Dependency Injection
和 Dependency Lookup
.
对此,我有如下疑问:
1) Spring 是否同时提供 Dependency Injection
,Dependency Lookup
?
2) 所有 Ioc
容器是否都具有这两个系统,即:Dependency Injection
,Dependency Lookup
?
3)如果Spring同时提供了Dependency Injection
,Dependency Lookup
,那么说Spring是DI框架是不是错了,当它同时具备这两个时能力?
1:是的,Spring同时提供依赖注入和依赖查找。您可以让 Spring 使用例如 @Autowired
注释注入依赖项,您还可以通过调用 getBean
之一手动从 Spring 的 ApplicationContext
中查找组件] 方法。
关于概念 "inversion of control" (IoC) 的主要理解是 Spring 为您完成工作,而不是相反:您让 Spring 创建实例您的组件,然后让 Spring 注入依赖项,而不是相反,您自己编写代码来创建实例和查找依赖项。
2:不一定。
3:Spring可以做依赖注入(DI),所以是一个DI框架。仅仅因为它还可以做其他事情(例如允许您显式查找组件)不会突然不再使它成为 DI 框架。