Spring的核心概念:
- 使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象
代码书写现状
耦合度偏高
解决方案:
使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象
IoC ( Inversion of Control )控制反转:
什么是控制反转?
使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,这种思想称为控制反转。
- 业务层要用数据层的类对象,以前是自己
new
的 - 现在自己不new了,交给
别人[外部]
来创建对象 别人[外部]
就反转控制了数据层对象的创建权- 这种思想就是控制反转
什么是IOC容器?
- Spring创建了一个容器用来存放所创建的对象,这个容器就叫IOC容器
Spring技术对IoC思想进行了实现:
- Spring提供了一个容器,称为IoC容器,用来充当IoC思想中的"外部”,也就是用来提供对象。
- IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在Ioc容器中统称为Bean
DI ( Dependency Injection )依赖注入(什么是依赖注入?):
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入。
- 业务层要用数据层的类对象,以前是自己
new
的 - 现在自己不new了,靠
别人[外部其实指的就是IOC容器]
来给注入进来 - 这种思想就是依赖注入
具体目标:充分解耦,具体实现靠:
- 使用IOC容器管理bean(IOC)
- 在IOC容器内将有依赖关系的bean进行关系绑定(DI)
- 最终结果为:使用对象时不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系.