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 在宿舍办公,记此笔记。
每天告诉自己一次,『我真的很不错』