1.
IOC
(
Inversion of Control
)控制反转
(1)
什么是控制反转呢?
使用对象时,由主动
new
产生对象转换为由
外部
提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。
业务层要用数据层的类对象,以前是自己
new
的现在自己不
new
了,交给
别人
[
外部
]
来创建对象
别人
[
外部
]
就反转控制了数据层对象的创建权这种思想就是控制反转
别人
[
外部
]
指定是什么呢
?
继续往下学 。
(2)Spring
和
IOC
之间的关系是什么呢
?
Spring
技术对
IOC
思想进行了实现
Spring
提供了一个容器,称为
IOC
容器
,用来充当
IOC
思想中的
"
外部
"
。IOC
思想中的
别人
[
外部
]
指的就是
Spring
的
IOC
容器
(3)IOC
容器的作用以及内部存放的是什么
?
IOC
容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象
被创建或被管理的对象在
IOC
容器中统称为
Bean
IOC
容器中放的就是一个个的
Bean
对象
(4)
当
IOC
容器中创建好
service
和
dao
对象后,程序能正确执行么
?
不行,因为
service
运行需要依赖
dao
对象
IOC
容器中虽然有
service
和
dao
对象,但是
service
对象和
dao
对象没有任何关系
,需要把
dao
对象交给
service,
也就是说要绑定
service
和
dao
对象之间的关系
。像这种在容器中建立对象与对象之间的绑定关系就要用到
DI。
2.
DI
(
Dependency Injection
)依赖注入
![](https://i-blog.csdnimg.cn/blog_migrate/f6935593d35ec15cf0a77f162fb65496.png)
(1)
什么是依赖注入呢
?
在容器中建立
bean
与
bean
之间的依赖关系的整个过程,称为依赖注入
业务层要用数据层的类对象,以前是自己
new
的,现在自己不
new
了,靠
别人
[
外部其实指的就是
IOC
容器
]
来给注入进来
,这种思想就是依赖注入 。
(2)IOC
容器中哪些
bean
之间要建立依赖关系呢
?
这个需要程序员根据业务需求提前建立好关系,如业务层需要依赖数据层,
service
就要和
dao
建立依赖关系 。
介绍完
Spring
的
IOC
和
DI
的概念后,我们会发现这两个概念的最终目标就是
:
充分解耦
,具体实现靠
:
使用
IOC
容器管理
bean
(
IOC)
在
IOC
容器内将有依赖关系的
bean
进行关系绑定(
DI
)
最终结果为
:
使用对象时不仅可以直接从
IOC
容器中获取,并且获取到的
bean
已经绑定了所有的依
赖关系
. 。
核心概念小结
这节比较重要,重点要理解
什么是
IOC/DI
思想
、
什么是
IOC
容器
和
什么是
Bean
:
(1)
什么
IOC/DI
思想
?
IOC:
控制反转,控制反转的是对象的创建权
DI:
依赖注入,绑定对象与对象之间的依赖关系
(2)
什么是
IOC
容器
?
Spring
创建了一个容器用来存放所创建的对象,这个容器就叫
IOC
容器
(3)
什么是
Bean?
- 容器中所存放的一个个对象就叫Bean或Bean对象