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去匹配实例返回
相关推荐
是小蟹呀^12 小时前
Java中的继承:从入门到精通
java·继承
尘世中一位迷途小书童12 小时前
前端工程化基石:package.json 40+ 字段逐一拆解
前端·javascript·架构
bearpping12 小时前
怎么下载安装yarn
java
OpenTiny社区12 小时前
WebMCP + WebSkills:企业级智能化页面操控方案,兼顾隐私安全与高效落地!
前端·ai编程·mcp
酉鬼女又兒12 小时前
零基础快速入门前端JavaScript四大核心内置对象:Math、Date、String、Array全解析(可用于备赛蓝桥杯Web应用开发)
前端·javascript·css·蓝桥杯·前端框架·js
西门吹雪分身12 小时前
JDK8之四大核心函数式接口
java·函数式接口
秦jh_12 小时前
【Redis】Set和Zset
数据库·redis·缓存
__sgf__12 小时前
ES11(ES2020)新特性
前端·javascript
what_201813 小时前
PostgreSQL 时间
数据库·postgresql
华科易迅13 小时前
Spring AOP
java·后端·spring