什么是IOC(控制反转):就是我们把我们要创建的对象或者bean交给springIOC容器来帮忙实现。
什么是DI(依赖注入):就是spring在启动时候将我们想要的类以及类参数和属性的关系都依赖好并且注入bean,在我们调用这个对象的时候,参数和属性以及值都已经依赖好了。
BeanFactory(bean容器)
BeanDefinition(存储配置信息)
BeanDefinitionReader(读取配置信息)
springIOC容器初始化:
1、定位配置文件
2、把加载的配置文件写入到ioc容器中
3、注册 将配置文件内容注册到bean中
IOC详细过程
寻找入口(refrech) -->
读取配置文件路径(getResource()) -->
容器开始启动(refrechBeanFactory()) -->
开始解析配置文件路径(getResourceByPath()) -->
载入配置文件路径(loadBeanDefinitions()) -->
分配路径处理策略(deletage()) -->
解析配置文件路径 -->
加载配置文件信息 -->
开始解析配置文件 -->
分配解析配置文件策略 -->
将配置文件载入内存 -->
载入bean -->
载入property -->
载入property元素 -->
载入list -->
分配注册 -->
开始向容器注册
依赖注入DI主要的类:
1、IOC容器
BeanFactory getBean()
AbstractBeanFactory
2、实例化策略(单列,多列,延迟加载)
SimpleInstantiationStrategy
3、存储实例化相关的信息(proxy)