SpringBoot 在其启动过程中给我们留出了很多定制点,尤其是我们可以自己添加一些初始化器(ApplicationContextInitializer 接口的实现类)和监听器(ApplicationListener 接口的实现类)在服务启动过程中执行一些逻辑,例如可以通过监听 ContextRefreshedEvent 事件来实现服务启动注册,可以通过自己实现的初始化器来加载外部配置,所以了解 SpringBoot 的启动源码是非常有意义的。
本次 Chat 分享将介绍以下内容:
- 创建 SpringApplication 实例过程分析:
- 判断是否是 Web 环境。
- 创建并初始化 ApplicationInitializer 列表。
- 创建并初始化 ApplicationListener 列表。
- 初始化主类 MainApplicationClass。
- 怎样添加自定义监听器?
- 启动核心 Run 方法过程源码分析:
- 创建启动停止计时器。
- 配置 Awt 系统属性。
- 获取 SpringApplicationRunListeners。
- 启动 SpringApplicationRunListener。
- 创建 ApplicationArguments。
- 创建并初始化 ConfigurableEnvironment。
- 打印 Banner。
- 创建 ConfigurableApplicationContext。
- 准备 ConfigurableApplicationContext。
- 刷新 ConfigurableApplicationContext。
- 容器刷新后动作。
- SpringApplicationRunListeners 发布 Finish 事件。
- 计时器停止计时。
通过此过程您将了解 SpringBoot 启动的底层过程,并能自己去定制一些初始化器和监听器,添加自己的业务逻辑来实现相关功能。(注:文末将附上关于SpringBoot实战学习的资源链接)
阅读全文: http://gitbook.cn/gitchat/activity/5b2d9ab31a533235c4e8ea2a
您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。