当前位置: 首页 > 工具软件 > StringBean > 使用案例 >

Spring源码分析4 — spring bean创建和初始化

魏鸿哲
2023-12-01

1 介绍

创建并初始化spring容器中,refresh()方法中解析xml配置文件,注册容器后处理器,bean后处理器,初始化MessageSource,ApplicationEventMulticaster广播器,注册完ApplicationListener监听器后,关键一步就是创建和初始化其他非lazy-init的singleton beans。这样在容器初始化好的时候,这些singleton beans就已经创建和初始化好了,可以大大提高bean的访问效率。这个过程比较复杂,本文将详细分析整个流程。先看涉及到的关键类。

AbstractApplicationContext: 定义了spring容器初始化的大部分流程方法,子类必须遵循这个流程,但可以修改流程中的方法,典型的模板模式。bean创建的入口方法finishBeanFactoryInitialization也在这个方法中。

DefaultListableBeanFactory:一种BeanFactory容器实现,实现了ConfigurableListableBeanFactory接口

BeanDefinition:描述bean结构,对应XML中的或者注解中的@Component

AbstractBeanFactory:继承了BeanFactory容器,主要负责getBean创建Bean实例。

2 流程

2.1 finishBeanFactoryInitialization

初始化spring容器中的refresh()方法中,会调用finishBeanFactoryInitialization()方法,它是创建和初始化其他非lazy-init的s

 类似资料: