1. IOC
Inverse Of Controll
:控制反转反转了依赖关系的满足方式,由之前的自己创建依赖对象,变为由工厂推送。(变主动为被动,即反转)
2. DI
Dependency Injection
:依赖注入全新的依赖满足方式,体现在编码中就是全新的赋值方式 ==>
在工厂中为属性推送值
如:
3. IOC 和 DI
IOC(DI)
,即,是一码事
IOC 是思想
:指导我们在满足依赖时,应该有反转的设计。
DI 是手段
:实际操作时,就是在一次次的 注入
spring官方文档中,关于DIhttps://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-factory-collaborators的解释:
This process is fundamentally the inverse (hence the name, Inversion of Control) of the bean itself controlling the instantiation or location of its dependencies on its own by using direct construction of classes or the Service Locator pattern
4.DI的配置使用
1. DI的方式
- set注入:
- 借助set方法完成注入
- 构造注入 (了解)
- 借助构造方法完成注入
- 自动注入
- spring自动识别属性,并注入
2. set注入(使用较为频繁)
<bean id="setDI" class="x.xx.XXX">
<!-- jdk 8种基本类型+String -->
<property name="age" value="18"></property>
<property name="name" value="zhj"></property>
<property name="gender" value="true"></property>
<!-- 引用类型 -->
<property name="userDAO" ref="ud"></property>
<!-- List或数组 -->
<property name="list">
<list>
<value>18</value>
<ref bean="ud"/>
</list>
</property>
<!-- set -->