1.初始化SpringApplication
this.resourceLoader = resourceLoader;
Assert.notNull(primarySources,"PrimarySources must not be null");
this.primarySources =new LinkedHashSet<>(Arrays.asList(primarySources));
this.webApplicationType = WebApplicationType.deduceFromClasspath();
setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
this.mainApplicationClass = deduceMainApplicationClass();
1.loadSpringFactories类:先加载spring-boot和spring-autoconfig 下的spring-factories 的properties key value
2.实例化ApplicationContextInitializer 和ApplicationListener 的实现类,并加入到当前上下文