Spring 容器在初始化时,会将xml配置的 的信息封装成一个 BeanDefinition 对象, 所有的 BeanDefinition 存储到一个名为 beanDefinitionMap 的Map集合中去, Spring框架在对该Map进行遍历,使用反射创建
Spring 容器在初始化时,会将xml配置的 的信息封装成一个 BeanDefinition 对象,
所有的 BeanDefinition 存储到一个名为 beanDefinitionMap 的Map集合中去,
Spring框架在对该Map进行遍历,使用反射创建Bean实例对象,
创建好的Bean对象存储在一个名为 singletonObjects 的Map集合中,
当调用getBean方法时,则最终从该Map集合中取出Bean实例对象返回。
简单记忆为:
(BeanDefinition --> beanDefinitionMap --> Bean --> singletonObjects )
如图
- 加载xml配置文件,解析获取配置的每个的信息,封装成一个个的BeanDefinition对象;
- 将BeanDefinition存储在一个名为beanDefinitionMap的Map<String,BeanDefinition> 中;
- ApplicationContext底层遍历beanDefinitionMap,创建Bean实例对象;
- 创建好的Bean实例对象,被存储到一个名为 singletonObjects的Map<String,Object> 中;
- 当执行applicationContext.getBean(beanName)时,从singletionObjects去匹配Bean实例返回。
如图
2022.12.12 在宿舍办公,记此笔记。