我是靠谱客的博主 淡然往事,最近开发中收集的这篇文章主要介绍编程框架-springboot启动流程(springboot+2.2.x)背景启动流程评价,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
背景
每天都在使用spring boot,不了解基础的启动流程是真的说不过去。本wiki将进行启动流程阐述。
启动流程
- 推断应用的类型,是普通的类型还是web类型
- 查找并且加载initiallizers
- 查找并且加载listeners
- 推断并设置main方法的定义类,找到运行的主类
run时序图
通过listener的视角观察启动过程
创建一个spring boot的Hello项目,并且添加一个listener
添加了断点以后,运行,看看效果
这里可以清楚的看到是进行同步传消息,而且把SpringApplication对象也回调回来了。
initializers一共有7个,listeners共12个(最后一个是我们注册的)。
initializers来源于(spring模仿的jdk的spi技术):
listeners来源于(spring模仿的jdk的spi技术)
listener一共回调了n个消息,依次为:
- ApplicationStartingEvent
- ApplicationEnvironmentPreparedEvent
- ApplicationContextInitializedEvent
- ApplicationPreparedEvent
- ContextRefreshedEvent
- ApplicationStartedEvent
- ApplicationReadyEvent
- ContextClosedEvent
通过Configuration的视角
以Mybatis的启动器为例来进行阐述
下断点进行跟踪,最终会进行sqlSessionFactory的bean创建
bean的创建必然是通过spring-beans模块实现的,如下图
beanName是来自于spring.factories中的EnableAutoConfiguration配置,实现类为(在spring-boot-autoconfigure包中)
评价
本wiki都是用的上层概念来进行推测,之后需要深入到每个模块中去,才可以更好的了解其中的过程。
最后
以上就是淡然往事为你收集整理的编程框架-springboot启动流程(springboot+2.2.x)背景启动流程评价的全部内容,希望文章能够帮你解决编程框架-springboot启动流程(springboot+2.2.x)背景启动流程评价所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复