springboot启动流程
2020-08-17 10:46:25 0 举报
springboot启动流程
作者其他创作
大纲/内容
stopWatch.stop();
context = createApplicationContext();
ApplicationListener
listeners.running(context)
LiquibaseServiceLocatorApplicationListener实现了ApplicationListener接口
void starting()
void onApplicationEvent(E event);
listeners.contextPrepared(context)
listeners.started(context)
Headless模式赋值
invokeListener
发送ApplicationContextInitializedEvent
这里的new ApplicationStartingEvent会对后面使用什么样的Listener产生影响
listeners.contextLoaded(context)
可以看到由于在EventPublishingRunListener中的starting方法中,调用multicastEvent方法时传入的event类型是ApplicationStartingEvent,所以这里会调用LiquibaseServiceLocatorApplicationListener这个监听器的onApplicationEvent方法
初始化失败分析器
listener.starting();
配置环境模块,发送ApplicationEnvironmentPreparedEvent
SpringApplicationRunListeners
starting()
计时器计时
listeners.starting();
发送ApplicationPreparedEvent
printBanner(environment);
SimpleApplicationEventMulticaster
onApplicationEvent
关联springboot组件和应用上下文对象
SpringApplication.run()
LiquibaseServiceLocatorApplicationListener
createApplicationContext()
refreshContext(context)
发送ApplicationReadyEvent
发送ApplicationStartedEvent
public void onApplicationEvent(ApplicationStartingEvent event)
加载sources到context
刷新上下文
multicastEvent(..)
调用框架启动扩展类
发送ApplicationStartingEvent
计时器停止计时
EventPublishingRunListener
context.setEnvironment(environment)postProcessApplicationContext(context)
SpringApplicationRunListener
创建应用上下文
打印banner
收藏
0 条评论
回复 删除
下一页