IOC(Inversion of Control)控制反转:
所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现
DI(Dependency Injection)依赖注入:
就是指对象是被动接受依赖类而不是自己主动去找,换句话说就是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动将它依赖的类注入给它。
Spring IOC容器初始化三部曲:
一, 定位:定位配置文件和扫描相关的注解
1. 寻找入口
ClassPathXmlApplicationContext -> 调用该函数构造函数中的refresh() -> AbstractApplicationContext
2. 获取配置文件路径
3. 开始启动
4. 创建容器
5. 载入配置路径
6. 分片路径处理策略
7. 解析配置文件路径
8. 开始读取配置文件
9. 准备文档对象
二, 加载:将配置信息载入到内存中