#Spring Boot# SpringApplication.run()方法详解

692 阅读1分钟

SpringApplication.run() 方法是 Spring Boot 应用程序的入口点,负责启动 Spring 应用程序并将其托管在 Spring Boot 环境中。

下面是该方法的详细解释

public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {
    return new SpringApplication(primarySource).run(args);
}

该方法接受一个主配置类的 Class 对象和可选的命令行参数列表,返回一个可配置的应用程序上下文对象。

在执行该方法时,Spring Boot 将按照以下顺序执行以下操作:

  1. 创建一个新的 SpringApplication 对象,并将主配置类传递给构造函数。

  2. SpringApplication 对象进行必要的配置,例如设置应用程序上下文、设置环境、设置应用程序命名等等。

  3. 运行 SpringApplicationrun() 方法,它将执行以下操作:

    a. 创建一个新的 ConfigurableApplicationContext 实例,使用之前配置的应用程序上下文类型。

    b. 如果没有显式设置父上下文,则将 ApplicationContext 设置为当前上下文。

    c. 根据 SpringApplication 的配置,加载配置资源(比如 application.properties)。

    d. 向上下文中添加 EnvironmentPropertySourcesBeansFactoryPostProcessorsApplicationListeners

    e. 实例化并注册所有 BeanFactoryPostProcessorBeanDefinitionRegistryPostProcessor

    f. 初始化所有单例 Bean。

    g. 激活所有注册的 ApplicationListeners

    h. 调用 ApplicationContext 实例的 refresh() 方法,完成上下文的刷新和启动。

  4. 返回创建的应用程序上下文。

总之,SpringApplication.run() 方法是启动 Spring Boot 应用程序的重要方法,它执行了应用程序启动的各种初始化和配置。