Spring(1)理解控制反转(IOC)、依赖注入(DI)

记得刚开始学习Spring的时候,那时候Spring的版本还是比较低的,最近工作不忙在复习一下,岁数大了,记忆力大不如从前,所以记录下自己整理的东西。如有错误请指正。

控制反转(IOC)

控制什么?反转什么?我的理解,集中管理控制对象(工厂模式),反转对象获取方式,反转之前我们是主动通过“new”关键字创建对象,反转之后我们接收IOC提供的对象。
举个例子:

吃饺子,如果没有饺子怎么办?

未使用IOC之前:

自己食材,自己动手,丰衣足食,我的饺子我做主,咸了淡了你们管不着。
自己做饺子截图
使用IOC之后:
不用自己做,告诉饺子馆,我想吃韭菜鸡蛋的饺子,饺子馆做好饺子送到家。
控制反转截图
在这个例子中,使用控制反转(IOC),告诉饺子馆,我(对象)想吃饺子(对象)。最终我会得到饺子馆(对象工厂)送来的饺子。这样,我免去擀饺子皮、躲饺子馅、煮饺子,等一系列的操作,同时也不必担心自己的厨艺不佳,导致自己难以下咽。
对应上控制反转(IOC),反转的什么,其实反转的饺子的获取方式。那饺子馆来控制管理各式各样的饺子。
写到这里,控制反转(IOC),它不是一种技术,是一种思想,使用控制反转(IOC)集中管理控制对象,可以使对象和对象之间松散耦合,有利于功能的复用。

依赖注入

谁依赖谁?谁注入谁?我的理解,依赖注入,其实就是动态向某个对象提供它所需要的对象。上门吃饺子的例子,我依赖与饺子馆,饺子馆提供饺子给我。
在程序中的,依赖注入有几种方式:

构造器注入
set方法注入
基于注解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章