spring启动过程中主要源码方法
时间: 2023-06-23 10:09:17 浏览: 130
Spring 启动过程是一个比较复杂的过程,主要包括以下几个步骤:
1. 加载 Spring 配置文件,创建 Bean 的定义信息。
2. 根据 Bean 的定义信息创建 Bean 实例,并进行依赖注入。
3. 将 Bean 实例注册到 Spring 容器中。
4. 根据配置信息对 Bean 实例进行初始化。
5. 在 Spring 容器启动完成后,触发相关的回调方法。
其中,涉及到的主要源码方法如下:
1. 加载 Spring 配置文件,创建 Bean 的定义信息:
- `org.springframework.beans.factory.support.DefaultListableBeanFactory#registerBeanDefinition`:注册 Bean 定义信息。
- `org.springframework.beans.factory.support.BeanDefinitionReaderUtils#registerBeanDefinition`:注册 Bean 定义信息的工具类方法。
2. 根据 Bean 的定义信息创建 Bean 实例,并进行依赖注入:
- `org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean`:获取 Bean 实例的入口方法。
- `org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBean`:创建 Bean 实例的方法。
- `org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean`:进行依赖注入的方法。
3. 将 Bean 实例注册到 Spring 容器中:
- `org.springframework.beans.factory.support.AbstractBeanFactory#registerSingleton`:注册单例 Bean 实例的方法。
- `org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#addSingleton`:添加单例 Bean 实例的方法。
4. 根据配置信息对 Bean 实例进行初始化:
- `org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean`:对 Bean 实例进行初始化的方法。
5. 在 Spring 容器启动完成后,触发相关的回调方法:
- `org.springframework.context.support.AbstractApplicationContext#refresh`:刷新 Spring 容器,触发回调方法的入口方法。
- `org.springframework.context.support.AbstractApplicationContext#invokeBeanFactoryPostProcessors`:执行 BeanFactoryPostProcessor 的方法。
- `org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization`:完成 BeanFactory 初始化的方法。
- `org.springframework.context.support.AbstractApplicationContext#finishRefresh`:完成 Spring 容器的刷新,触发相关回调方法的方法。
阅读全文