1、创建并开启计时器
StopWatch stopWatch = new StopWatch();
stopWatch.start();
2、设置java.awt.headless属性
configureHeadlessProperty();
3、从spring.factories文件中加载key值为SpringApplicationRunListener的listener(EventPublishingRunListener),并将11个listener添加到EventPublishingRunListener对象中
SpringApplicationRunListeners listeners = getRunListeners(args);
public EventPublishingRunListener(SpringApplication application, String[] args) {
this.application = application;
this.args = args;
this.initialMulticaster = new SimpleApplicationEventMulticaster();
for (ApplicationListener<?> listener : application.getListeners()) {
this.initialMulticaster.addApplicationListener(listener);
}
}
4、创建ApplicationStartingEvent事件,从11个listener中筛选出监听ApplicationStartingEvent事件的listener,并做相应处理
listeners.starting();
5、解析启动参数,如java -jar xxoo.jar --***
ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);
6、创建environment对象
ConfigurableEnvironment environment = prepareEnvironment(listeners, applicationArguments);
- 根据应用类型webApplicationType创建相应的environment对象,当应用类型为servlet时对应的environment对象为 StandardServletEnvironment
switch (this.webApplicationType) {
case SERVLET:
return new StandardServletEnvironment();