springboot启动流程简说
流程:
1.运行SpringApplication.run()方法-->new 一个SpringApplication。
2.其中SpringApplication的构造函数执行:
this.webApplicationType = WebApplicationType.deduceFromClasspath();//判断应用类型 ---->>
this.setInitializers(this.getSpringFactoriesInstances(ApplicationContextInitializer.class)); //加载初始化 ----->>
this.setListeners(this.getSpringFactoriesInstances(ApplicationListener.class));//加载监听器 ----->>
this.mainApplicationClass = this.deduceMainApplicationClass();//设置运行主类。
3.run方法执行:
stopWatch.start();//开启计时器 --->>
SpringApplicationRunListeners listeners = this.getRunListeners(args);//获取监听器 listeners.starting();//开启监听器 --->>
ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);//设置应用参数 --->>
ConfigurableEnvironment environment = this.prepareEnvironment(listeners, applicationArguments);//准备环境 -->> context = this.createApplicationContext();//创建容器 --->>this.prepareContext(context, environment, listeners, applicationArguments, printedBanner);//准备应用上下文 --->
this.refreshContext(context);//刷新应用上下文 --->>
stopWatch.stop();//停止计时 --->>listeners.started(context);//发布上下文准备就绪事件。---->>springboot启动完成。
相关内容