IOC浅析
一、借助第三方实现有依赖性对象的解耦
意思是把对象各自封装起来,通过IOC来实现对象之间的联系,但对象与对象之间又没有直接联系。
二、为什么叫这种方式为控制反转
在没有加入IOC前,对象A依赖于对象B当A在运行运行某一点或实例时,自己需要主动创建B,这是控制权在自己手上,在加入了IOC之后,A和B失去了直接联系,当A实例化后需要B时,IOC会主动创建一个B实例注入A中,所以看出A获取B的依赖性从主动变成了被动。所以称为控制反转。
三、IOC别名(DI)
当IOC把获得对象的过程给反转后,由自身管理变成IOC注入,于是有人便给IOC起个别名叫做依赖注入(DI),动态注入,在运行期间实现对象间的解耦。
四、IOC的优点
(1)可维护性好,便于单元测试。每个单独的CLASS都可以进行单元测试,这就是松耦合带来的好处。
(2)在开发过程中,业务关联系小,团队之间分工明确,效率高,可把一个大任务拆分成小任务来解决。
(3)复用性好,可把常用组件单独分离出来,复用于其它模块或其它项目,也是面向对象基本特征之一。
(4)便利性好,IOC生成对象可转为外置方式如XML,当我们需要替换一个子类的时候只需要修改XML文件即可。
五、IOC原理
控制反转是spring的核心原理基于面向对象(OO)的设计原则。别找我,我来找你。也就是说,组件都是被动的,从传统的在一个对象中实例化另一个对象改变成外部容器来进行管理,即反转。
六、spring核心接口
(1)BeanFactory用于bean的读取配置文件,管理对象的生成,加载与维护,Bean对象与对象间的关系。负责bean的生命周期。
(2)ApplicationContext 比BeanFactory多出支持国际化消息,文字消息解析等作用。