SpringApplication.run() 方法是 Spring Boot 应用程序的入口点,负责启动 Spring 应用程序并将其托管在 Spring Boot 环境中。
下面是该方法的详细解释
public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {
return new SpringApplication(primarySource).run(args);
}
该方法接受一个主配置类的 Class 对象和可选的命令行参数列表,返回一个可配置的应用程序上下文对象。
在执行该方法时,Spring Boot 将按照以下顺序执行以下操作:
-
创建一个新的
SpringApplication对象,并将主配置类传递给构造函数。 -
对
SpringApplication对象进行必要的配置,例如设置应用程序上下文、设置环境、设置应用程序命名等等。 -
运行
SpringApplication的run()方法,它将执行以下操作:a. 创建一个新的
ConfigurableApplicationContext实例,使用之前配置的应用程序上下文类型。b. 如果没有显式设置父上下文,则将
ApplicationContext设置为当前上下文。c. 根据
SpringApplication的配置,加载配置资源(比如 application.properties)。d. 向上下文中添加
Environment、PropertySources、BeansFactoryPostProcessors和ApplicationListeners。e. 实例化并注册所有
BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor。f. 初始化所有单例 Bean。
g. 激活所有注册的
ApplicationListeners。h. 调用
ApplicationContext实例的refresh()方法,完成上下文的刷新和启动。 -
返回创建的应用程序上下文。
总之,SpringApplication.run() 方法是启动 Spring Boot 应用程序的重要方法,它执行了应用程序启动的各种初始化和配置。