spring 技术内幕阅读笔记 - spring ioc

1. IoC容器的实现

IoC容器的基本实现接口?

BeanFactory

1.IoC容器的初始化包括那几部?

1.1 BeanDefinition Resource 的定位

通过Resource接口完成,通过BeanDefinitionReader读取资源


1.2. 载入和解析

把 BeanDefinition 转化为spring内部表示的数据结构

BeanDefinition 载入的入口是?

FileSystemXmlApplicationContext 构造方法中 调用的

FileSystemXmlApplicationContext  的基类 AbstractApplicationContext中 refresh 方法


BeanFactory 在哪里创建?

AbstractRefreshableApplicationContext 中的 refreshBeanFactory 方法


BeanDefinitions 的载入在哪里?

spring 技术内幕阅读笔记 - spring ioc_第1张图片

loadBeanDefinitions 是抽象方法 ,具体实现是?

AbstractXmlApplicationContext中的 loadBeanDefinitions 方法

具体的载入过程委托给 BeanDefinitionReader,具体载入实现是通过 XmlBeanDefinitionReader


1.3. 注册

BeanDefinition  将被保存到 beanDefinitionMap 

通过 DefaultListableBeanFactory registerBeanDefinition 方法 ,DefaultListableBeanFactory  实现了 BeanDefinitionRegistry接口


2.IoC容器的依赖注入

依赖注入在什么时候发生的?

用户第一次从容器中获取bean的时候,也可以设置lazy-init对bean预实例化

程序入口?

DefaultListableBeanFactory(AbstractBeanFactory) getBean 方法

处理依赖注入的方法?

AbstractAutowireCapableBeanFactory populateBean 方法

你可能感兴趣的:(spring 技术内幕阅读笔记 - spring ioc)