(1)IOC容器的底层原理:工厂模式+反射+XML解析
(2)IOC接口:BeanFactory
(3)IOC操作Bean管理的方式1:基于XML配置文件
(4)IOC操作Bean管理的方式2:基于注解
什么是IOC容器?
IOC即为控制反转,那什么是控制反转?控制反转就是把对象创建和对象之间的调用过程,交给Spring进行管理.
Spring IOC容器的作用:降低耦合度
图解IOC原理:
原始的方式实现对象的创建:
上面这种编程方式耦合性太高,不利于后期的维护
耦合性:(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。
耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合
使用工厂模式降低程序之间的耦合性:
虽然实现了部分的解耦合,但是工厂模式还有很大的解耦空间(程序间无法完全实现解耦合,只能降低耦合)
为了实现更好的解耦,使用IOC控制反转(结合XML解析,工厂模式,反射)来进行解耦
IOC接口:
BeanFactory接口是Spring中内置的实现方式,IOC容器的基本实现方式,不建议开发人员使用
ApplicationContext接口是BeanFactory接口的子接口,提供了更多强大的功能,建议开发人员使用
一般我们更多会使用第二种方式,第二种方式ApplicationContext更加节约资源,在服务器加载时就完成配置文件中所有对象的创建,将这个耗时的过程在服务器启动时完成,而不是运行时
BeanFactory接口的子父接口以及类:
ApplicationContext接口的子父接口以及类: