(1)ioc/DI其实是同一种概念的两种不同角度的理解罢了。
(2)ioc控制反转,首先到理解以下三个问题:
2.1:谁控制谁?我们知道容器的作用就是管理bean对象,所以Spring容器控制对象。
bean对象通常以标签的形式出现在配置文件中,如:
<bean id="dataSource" class="">
配置文件中的bean对象有属性property ,而这些属性就会读取外部资源,如:
<bean id="" class="">
<property name = "dataSource" value=""/>
<property name = "configLocation" value=""/>
<property name = "mapperLocation" value=""/>
站在房子的角度上来看,它是被中介推荐给我的,所以就是反转。
(3)DI依赖注入:描述了容器在运行期如何管理具有依赖关系的组件(bean对象),即容器动态的将某种依赖关系注入到组件中。
首先来理解一下几个问题:
(2)ioc控制反转,首先到理解以下三个问题:
2.1:谁控制谁?我们知道容器的作用就是管理bean对象,所以Spring容器控制对象。
bean对象通常以标签的形式出现在配置文件中,如:
<bean id="dataSource" class="">
</bean>
配置文件中的bean对象有属性property ,而这些属性就会读取外部资源,如:
<bean id="" class="">
<property name = "dataSource" value=""/>
<property name = "configLocation" value=""/>
<property name = "mapperLocation" value=""/>
</bean>
2.3如何理解反转?由容器提供给我们所需的依赖对象,并不是我们主动创建这个以来对象。
例如,
我想买个大房子,我不会直接找开发商买,我会找中介要房源。站在房子的角度上来看,它是被中介推荐给我的,所以就是反转。
(3)DI依赖注入:描述了容器在运行期如何管理具有依赖关系的组件(bean对象),即容器动态的将某种依赖关系注入到组件中。
首先来理解一下几个问题:
3.1谁依赖谁?
应用程序依赖ioc容器。通常在某段java代码前添加注解,告诉容器自己所需要的资源是什么。想了解注解内容,请移步到其他文章
3.2为什么要依赖?
前面说过,容器控制外部资源的获取,应用程序要获得资源就得依赖容器。
3.3谁注入谁?
ioc容器注入应用程序依赖的对象。
3.4注入了什么?
注入某个对象所需要的外部资源。