IOC:控制反转(inversion of control)
主要有两种实现:DL和DI
Spring的IOC使用的是DI(依赖注入)
主要涉及两个容器:
低级容器:BeanFactory,就是个HashMap,Key是BeanName,Value是Bean的实例
高级容器:ApplicatonContext
Spring IOC的初始化过程,就是ClassPathXmlApplicationContext的构造过程
总结IOC的工作流程:
1、加载配置文件(xml),解析成BeanDefinition放在BeanFactory容器中
2、调用getBean时,从BeanDefinition所属的BeanFactory中,拿出Class对象进行实例化,同时,如果有依赖关系,将递归调用getBean方法,完成依赖注入;
ApplicationContext容器会调用refresh方法刷新BeanFactory工厂的所有配置。
通过以上简明扼要的总结,对Spring IOC有一个全面的认识,具体细节有兴趣可以查看一下Spring 源码。