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去匹配实例返回
相关推荐
潇凝子潇6 分钟前
MySQL Redo Log 和 Undo Log 满了会有什么问题
数据库·mysql
江城开朗的豌豆16 分钟前
小程序登录不迷路:一篇文章搞定用户身份验证
前端·javascript·微信小程序
aesthetician21 分钟前
React 19.2.0: 新特性与优化深度解析
前端·javascript·react.js
第二只羽毛21 分钟前
重载和继承的实践
java·开发语言
王嘉俊92526 分钟前
设计模式--适配器模式:优雅解决接口不兼容问题
java·设计模式·适配器模式
王嘉俊92528 分钟前
设计模式--组合模式:统一处理树形结构的优雅设计
java·设计模式·组合模式
道199335 分钟前
50 台小型无人车与50套穿戴终端 5 公里范围内通信组网方案深度研究
java·后端·struts
FIN666835 分钟前
射频技术领域的领航者,昂瑞微IPO即将上会审议
前端·人工智能·前端框架·信息与通信
迎風吹頭髮40 分钟前
UNIX下C语言编程与实践35-UNIX 守护进程编写:后台执行、脱离终端、清除掩码与信号处理
java·c语言·unix
U.2 SSD1 小时前
ECharts漏斗图示例
前端·javascript·echarts