SpringBean实例化的基本流程

Bean实例化的基本流程

  • Spring容器在进行初始化时,会将xml配置的**<bean>的信息** 封装成一个BeanDefinition对象(存储<bean>标签的信息,一个<bean>标签对应一个BeanDefinition对象),所有的BeanDefinition存储到一个名为beanDefinitionMap的Map集合中去,Spring框架在对该Map进行遍历,使用反射创建Bean实例对象(object),创建好的Bean对象存储到一个名为singletonObjects(单例池对象)的Map集合中,当调用getBean方法时则最总从该Map集合中取出Bean的实例对象返回。
    • 流程
      • 加载XML配置文件,解析获取配置文件中的每一个<bean>信息(Reader),封装成一个个BeanDefinition对象
      • 将BeanDefinition存储到一个名为BeanDefinitionMap的Map<String,BeanDefinition>中
      • ApplicationContext底层遍历beanDefinitionMap,创建Bean实例对象
      • 创建好的Bean实例对象,会被储存到一个名为singletonObjects的Map<String,Object>中
      • 当执行applicationContext.getBean(匹配条件)时,从singletonObjects去匹配实例返回
相关推荐
2601_95346561几秒前
m3u8live.cn深度解析:一款专为开发者打造的 M3U8 调试工具
java·前端·django·音视频·开发工具
娇娇yyyyyy1 分钟前
QT编程(9): QTextEdit
前端·qt
稻草猫.10 分钟前
SpringBoot日志全解析:从调试到持久化
java·开发语言·spring boot·java-ee·idea
雷工笔记10 分钟前
KingFusion 关系库查询核心:SQLQuery 与 AsynSQLQuery 函数全解析
数据库
zopple10 分钟前
Knife4j文档请求异常(基于SpringBoot3,查找原因并解决)
java·服务器·数据库
执笔为剑12 分钟前
docker环境升级数据库
数据库·docker·容器
清水白石00818 分钟前
Python 弱引用深度解析——让缓存不再成为内存泄漏的温床
java·python·缓存
zzb158019 分钟前
RAG from Scratch-优化-routing
java·前端·网络·人工智能·后端·python·mybatis
数据知道26 分钟前
MongoDB审计日志配置:详细讲述满足合规性要求的安全记录
数据库·安全·mongodb
難釋懷30 分钟前
Redis搭建哨兵集群
数据库·redis·缓存