SpringBoot2启动流程深入分析

本文深入剖析SpringBoot2的启动流程,从启动监听器、获取环境、创建和准备容器到刷新容器及其后扩展的每个步骤。通过源码解读,阐述了SpringBoot启动过程中关键方法的作用,如EventPublishingRunListener的事件传播和ConfigFileApplicationListener的环境配置加载。文章提倡先理解架构再看源码,认为掌握框架能提升年薪并有助于社区发展。
摘要由CSDN通过智能技术生成

title: SpringBoot2.StartProcess.depth

StartProcess提纲

昨天了咱们把大的过程说了一下,今天咱们把细化的过程详细写写。
之后再根据这几个细化过程,继续来一遍深入的源码解读。
一点关于源码阅读的心得就是先看大架构布局,然后细看各个组成模块。
明白各个模块用到的技术
通过上面的方式去看源码其实是很轻松的一件事情。
可能有人会说了,他妈的就是不知道才去看源码的呀
知道还看源码干啥
其实哦这样说也能理解,不过难道不可以看看官方文档明白架构?
不能看看别人的博客吸取的经验,然后再去看源码?
有些事情能站在别人的肩膀上就在别人肩膀上,时间就是生命就是金钱。
看源码的动力,你可以认为每弄懂一个框架。
年薪就能加10W
等超牛逼了年薪百万小问题,顺带着还有超强的成就感。
最屌的是能出名呀
粉丝一大堆的感觉真爽,还能帮助社区的发展。

启动监听器

在run方法中有下面两句代码

SpringApplicationRunListeners listeners = getRunListeners(args);
listeners.starting();

咱们先看一下getRunListeners
代码如下

  private SpringApplicationRunListeners getRunListeners(String[] args) {
   
    Class<?>[] types = new Class<?>[] {
    SpringApplication.class, String[].class };
    return new SpringApplicationRunListeners(logger, getSpringFactoriesInstances(
        SpringApplicationRunListener.class, types, this, args));
  }

上面的代码还是通过getSpringFactoriesInstances这个方法去Spring.factories配置文件拉取监听器通过反射实例化对象
该处实例化的class是EventPublishingRunListener,事件发布监听器
接着就是将它Starting
继续看下代码

  @Override
  public void starting() {
   
    this.initialMulticaster.multicastEvent(
        //关键代码,这里是创建application启动事件ApplicationStartingEvent
        new ApplicationStartingEvent(this.application, this.args));
  }

其中有这么一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值