一、IOC原理
1、控制反转(IOC)
将创建管理对象的工作交给容器来做。在容器初始化(或在某个时间节点)通过反射机制创建好对象,在使用时直接从容器中获取。
控制反转:将对象的控制权反过来交给容器管理。
依赖注入(DI):将对象依赖写入配置文件,在创建有依赖关系的对象时,由IOC容器来注入依赖的兑现。构造器注入、setter方法注入。
2、实现原理(流程)
(反射+XML技术)
利用(反射+工厂)技术,根据配置文件中给出的类名生成相应的对象。
Class.forName(className).newInstance。
Tomcat启动Spring容器;
初始化Spring容器,加载application.xml配置文件;
获取扫描包下所有class文件;
解析class中的注解信息;
通过反射实例化相应bean对象,以<beanId,bean>的形式保存集合,存储在IOC容器中。
通过ApplicationContext的getBean方法获取Bean。
3、IOC的好处
创建Bean及其依赖对象的工作交给IOC容器管理,业务代码只需要getBean就行了。将依赖关系写入配置文件中,有修改时,直接修改配置文件即可,而不用去业务代码中每一个使用Bean的地方修改。
4、IOC类型
构造注入: