上一篇,我们已经了解了整个Springboot的大体启动流程,也算是对其总体上有个简单的认知,接下来我们将深入的了解每一个重要的步骤都做了啥?
我们知道,在main方法调用SpringApplication.run,最终会实例化一个SpringApplication,并调用其run方法
public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) {
// 实例化SpringApplication,为一些核心属性进行赋值,然后再调用run方法
return new SpringApplication(primarySources).run(args);
}
那么,SpringApplication这个类有什么作用呢?这里我们可以通过类注释窥探一二。一般情况下,开源项目的类头注释是这样的:写详细解释下这个类的作用是什么。其次,会给出一些demo。
类注释虽详细,但是因为各种符号,可能会影响阅读,这里也可以到spring官网去查看对应类的api,里面的格式更符合阅读习惯
找到对应版本,查看Api Doc
搜索对应的类,并点击查看文档
这样子就能得到比较符合阅读的习惯的doc
这里我们简单看看,SpringApplication这个类的作用。从类注释中可以看到
SpringApplication可用于引导和从Java Main方法启动Spring应用程序的类。默认类将执行以下步骤来引导您的应用程序:
创建适当的ApplicationContext实例(取决于您的类路径)
注册CommandLinePropertySource以将命令行参数视为Spring属性
刷新应用程序上下文,加载所有Singleton Bean
触发任何Commandlinernerner bean
这个注释已经说明了这个类的大体作用,在我们了解整个启动过程时候,也能与之对应得上,只不过类注释上更加简短,省去很多细节。如果大家忘了,springboot3.0 源码揭秘 ----启动流程