架构
IOC容器 ------- spring容器(bean) -------- DefaultListenableFactory -------- Map结构存储bean实例
核心类
ApplicationContext
-
构造方法
AbstractApplicationContext#refresh
刷新spring容器(删除原有,创建新容器) -
创建工厂
obtainFreshBeanFactory
AbstractRefreshableApplicationContext#refreshBeanFactory
创建BeanFactory对象(DefaultListenableFactory),并加载BeanDefinition信息AbstractXmlApplicationContext#loadBeanDefinition 读取xml并加载BeanDefinition信息 XmlBeanDefinitionReader#loadBeanDefinition 委托给reader读取解析xml配置
- 创建bean对象
AbstractBeanFactory#getBeandoGetBean:去获取缓存中的Bean或创建Bean
#getSingleton:从三级缓存中获取bean实例 ----- 循环依赖问题
getObjectForBeanInstance ----- BeanFactory与FactoryBean
网友评论