美文网首页
springBoot学习笔记-bean创建过程

springBoot学习笔记-bean创建过程

作者: 轻呼吸_b484 | 来源:发表于2024-10-07 15:32 被阅读0次

1.概念态
我们手动声明一个类为一个springBean,例如@Bean配置,@Service标签等。
2.定义态
springApplictionContext容器中启动后会将我们声明的springBean的信息存储到beanDefinitionMap中,当中存储着这个bean的各种属性,如下图


image.png

3.纯静态:

Object bean = BeanDefinition.beanclass.newInstance();

这里spring通过反射创建出的对象和我们手动通过无参数构造器创建对象一样,只是对象创建,但对象中的属性都是空。
之后就开始spring的依赖注入,将创建对象中的属性赋值。
4.成熟态

依赖注入完成后bean,spring会存储到singletonObjects中,注意这里singletonObjects是个Map,key存的是类名,value存储的是已经创建好的对象。如图所示: image.png

@Component 将类标记为springBean
springBoot项目启动,new ApplicationContext()
调用refresh()方法
执行invokeBeanFactoryPostProcessors(beanFactory) 方法,将标记springBean的信息存储在beanFactory的beanDefinitionMap中如图


image.png

之后运行finishBeanFactoryInitialization(beanFactory)方法
调用beanFactory.preInstantiateSingletons()方法
该方法中会循环创建bean,getBean(beanName)为创建方法


image.png

相关文章

网友评论

      本文标题:springBoot学习笔记-bean创建过程

      本文链接:https://www.haomeiwen.com/subject/eanurjtx.html