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去匹配实例返回
相关推荐
heartbeat..15 小时前
介绍一下软件开发中常见的几种的架构模式
java·架构·开发
天天摸鱼的小学生15 小时前
【Java Enum枚举】
java·开发语言
爬山算法16 小时前
Redis(168) 如何使用Redis实现会话管理?
java·数据库·redis
四眼肥鱼16 小时前
全网最全的 qiankun 基于 react18+(主应用)、vue3.4+(微应用)实现页签缓存,页面缓存
前端·javascript
程语有云16 小时前
生产事故-那些年遇到过的OOM
java·内存·oom·生产事故
dorisrv16 小时前
优雅地处理前端错误边界
前端
狗哥哥16 小时前
Pinia Store 平滑迁移:用代理模式实现零风险重构
前端·架构
雨中飘荡的记忆16 小时前
Spring Test详解
java·后端·spring
sugar__salt16 小时前
网络编程套接字(二)——TCP
java·网络·网络协议·tcp/ip·java-ee·javaee