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去匹配实例返回
相关推荐
学java的小菜鸟啊7 分钟前
第五章 网络编程 TCP/UDP/Socket
java·开发语言·网络·数据结构·网络协议·tcp/ip·udp
云草桑7 分钟前
逆向工程 反编译 C# net core
前端·c#·反编译·逆向工程
zheeez10 分钟前
微服务注册中⼼2
java·微服务·nacos·架构
布丁椰奶冻12 分钟前
解决使用nvm管理node版本时提示npm下载失败的问题
前端·npm·node.js
程序员-珍14 分钟前
SpringBoot v2.6.13 整合 swagger
java·spring boot·后端
徐*红22 分钟前
springboot使用minio(8.5.11)
java·spring boot·spring
聆听HJ22 分钟前
java 解析excel
java·开发语言·excel
AntDreamer26 分钟前
在实际开发中,如何根据项目需求调整 RecyclerView 的缓存策略?
android·java·缓存·面试·性能优化·kotlin
失心疯_202327 分钟前
006.MySQL_查询数据
数据库·sql·mysql·关系型数据库·sqlyog·mysql教程·查询语句
java_heartLake31 分钟前
设计模式之建造者模式
java·设计模式·建造者模式