Springboot3.0源码揭秘 --SpringApplication的作用

170 阅读2分钟

上一篇,我们已经了解了整个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 源码揭秘 ----启动流程