SpringBoot-04-SpringApplication构造干了什么

构造SpringApplication就是利用SPI缓存了一些实现类,其他的逻辑都在run方法里面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public SpringApplication(@Nullable ResourceLoader resourceLoader, Class<?>... primarySources) {
this.resourceLoader = resourceLoader;
Assert.notNull(primarySources, "'primarySources' must not be null");
// 启动类
this.primarySources = new LinkedHashSet<>(Arrays.asList(primarySources));
this.properties.setWebApplicationType(WebApplicationType.deduce());
// spring.factories 没有配置
this.bootstrapRegistryInitializers = new ArrayList<>(
getSpringFactoriesInstances(BootstrapRegistryInitializer.class));
// spring.factories 找到ApplicationContextInitializer的实现缓存到initializers
setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
// spring.factories 找到ApplicationListener的实现缓存到listeners
setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
this.mainApplicationClass = deduceMainApplicationClass();
}

SpringBoot-04-SpringApplication构造干了什么
https://bannirui.github.io/2026/08/14/SpringBoot/SpringBoot-04-SpringApplication构造干了什么/
作者
dingrui
发布于
2026年8月14日
许可协议