Spring Boot 3.x 系列【49】启动流程 | 创建、准备应用上下文
发布人:shili8
发布时间:2025-03-11 20:55
阅读次数:0
**Spring Boot3.x 系列【49】启动流程**
在前面的文章中,我们已经了解了 Spring Boot 的基本概念、配置文件的使用以及依赖管理等内容。然而,Spring Boot 的真正魅力体现在其简洁高效的启动流程上。在本文中,我们将深入探讨 Spring Boot3.x 版本的启动流程。
**1. 创建应用上下文**
当我们运行 `java -jar` 命令时,Spring Boot 会创建一个新的应用上下文。这个过程称为 "应用上下文创建"(Application Context Creation)。
javapublic class SpringApplication { public static ConfigurableListableBeanFactory createBeanFactory() { // ... } public static ConfigurableEnvironment createEnvironment() { // ... } }
在 `createBeanFactory()` 方法中,我们可以看到 Spring Boot 创建了一个新的 BeanFactory 实例。这个实例将用于管理应用的 bean。
同样,在 `createEnvironment()` 方法中,我们可以看到 Spring Boot 创建了一个新的 Environment 实例。这是一个配置环境,用于存储应用的属性和配置信息。
**2. 准备应用上下文**
在应用上下文创建后,Spring Boot 会准备好应用上下文。这个过程称为 "应用上下文准备"(Application Context Preparation)。
javapublic class SpringApplication { public static void prepareContext(ConfigurableListableBeanFactory beanFactory) { // ... } public static void prepareEnvironment(ConfigurableEnvironment environment) { // ... } }
在 `prepareContext()` 方法中,我们可以看到 Spring Boot 为 BeanFactory 实例进行了准备工作,例如注册了必要的 bean 和配置。
同样,在 `prepareEnvironment()` 方法中,我们可以看到 Spring Boot 为 Environment 实例进行了准备工作,例如加载了应用的属性和配置信息。
**3. 加载配置文件**
在应用上下文准备后,Spring Boot 会加载应用的配置文件。这个过程称为 "配置文件加载"(Configuration File Loading)。
javapublic class SpringApplication { public static void loadProperties(ConfigurableEnvironment environment) { // ... } }
在 `loadProperties()` 方法中,我们可以看到 Spring Boot 加载了应用的属性和配置信息。
**4. 初始化 BeanFactory**
在配置文件加载后,Spring Boot 会初始化 BeanFactory 实例。这个过程称为 "BeanFactory 初始化"(BeanFactory Initialization)。
javapublic class SpringApplication { public static void initBeanFactory(ConfigurableListableBeanFactory beanFactory) { // ... } }
在 `initBeanFactory()` 方法中,我们可以看到 Spring Boot 为 BeanFactory 实例进行了初始化工作,例如注册了必要的 bean 和配置。
**5. 初始化 Environment**
在 BeanFactory 初始化后,Spring Boot 会初始化 Environment 实例。这个过程称为 "Environment 初始化"(Environment Initialization)。
javapublic class SpringApplication { public static void initEnvironment(ConfigurableEnvironment environment) { // ... } }
在 `initEnvironment()` 方法中,我们可以看到 Spring Boot 为 Environment 实例进行了初始化工作,例如加载了应用的属性和配置信息。
**6. 启动应用**
最后,在所有准备工作完成后,Spring Boot 会启动应用。这个过程称为 "应用启动"(Application Startup)。
javapublic class SpringApplication { public static void run(String[] args) { // ... } }
在 `run()` 方法中,我们可以看到 Spring Boot 启动了应用。
以上就是 Spring Boot3.x 版本的启动流程。这个流程简洁高效,能够快速启动应用并提供必要的服务。