关于Spring IOC的总结

关于Spring IOC的总结## 标题

控制反转:IOC
是面向对象编程中的一种设计原则,用来降低代码之间的耦合度
其中最常见的方式叫做依赖注入DI
通过控制反转 对象在被创建的时候,由一个调控系统内所有对象的外界实体
将其所依赖的对象的引用传递给它
关于Spring IOC的总结

DI 是Spring使用的方式 容器负责组件的装配
DL 已经被抛弃

IOC容器的原理
关于Spring IOC的总结

IOC容器其实就是一个大工厂,用来管理我们所有的对象以及依赖关系
原理就是通过java的反射技术来实现的 通过反射我们可以获取类的所有信息(成员变量类名 等等)
· 再通过配置文件xml或者注解来描述类与类之间的关系
我们就可以通过这些配置信息和反射技术来构建出对应的对象和依赖关系

1.容器读取Bean配置信息,在容器内部创建bean定义注册标
2.根据注册表加载实例化bean 建立bean与bean之间的依赖关系
3.将这些准备就绪的bean放到map缓存池中 等待应用程序调用

Spring容器(bean工厂)可简单分为两种
beanFactory :这是最基础的、面向Spring的
ApplicationContext: 是BeanFactory的子类

注:没有特殊要求的情况下,应该使用ApplicationContext完成
因为BeanFactory能完成的事情,ApplicationContext都能完成,并且提供了更多接近现在开发的功能

对IOC的理解:控制反转

在之前没有IOC时,我们直接早对象内部通过new进行创建对象 ,是程序主动去创建依赖对象
而现在 是由IOC专门一个容器来创建这些对象 即 由IOC对象来创建对象的创建
谁控制谁?当然是IOC容器控制了对象 控制什么?那就是主要控制了外部资源获取(不只是对象 还包括比如文件等)

所谓反转:
有反转就应该有正传 传统应用程序是由我们自己在对象中主动控制区直接获取依赖对象,也就是正传
而所谓的反转其实就是反转的控制权,由Spring来控制对象的生命周期 那么对象的控制就完全脱硫了我们的额控制,控制权交给了IOC的被动控制者

其次,说道IOC就会想到DI依赖注入,那么:
1.谁依赖谁:A对象依赖于IOC容器
2.为什么需要依赖:A对象需要IOC提供对象需要的数据、B对象等外部资源,没有这些资源不能完成业务处理
3.谁注入水:IOC容器注入A对象
4.注入了什么:IOC容器将A对象需要的数据、B对象等外部资源按需注入给对象
好处:降低了开发的成本,提高了代码复用率、软件的灵活性

总结:
IOC:不是什么技术,而是一种设计思想,在Sprring开发中,由IOC容器控制对象的创建、初始化、销毁等
这也就实现了对象控制权的反转,由我们对对象的控制权变成SpringIOC对对象的控制

DI:是IOC的具体实现 程序把依赖交给容器,容器帮你管理依赖

摘录自:
https://mp.weixin.qq.com/s/5Dgp-eNDvXOoOFVORbzahA