前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >22-SpringBoot流程分析-run

22-SpringBoot流程分析-run

作者头像
Devops海洋的渔夫
发布2022-03-23 16:17:06
2130
发布2022-03-23 16:17:06
举报
文章被收录于专栏:Devops专栏Devops专栏Devops专栏

22-SpringBoot流程分析-run

SpringBoot流程分析-run

启动计时器

执行监听器

准备环境

打印banner:可以resource下粘贴自定义的banner

创建context

refreshContext(context);

执行refreshContext方法后才真正创建Bean

1571373793325

源码解读

我们继续着上一篇的 debug 状态继续执行,如下:

1.完成了初始化动态,启动此应用

点进去 run 方法中,如下:

并设置断点,跳过去:

2.初始化IOC容器,以及启动应用监听器

3.开始环境模块准备

还会创建了不少环境准备的信息。

4.打印Banner信息

image-20220227172317638

可以看到这里打印了 Banner 信息。我们可以进去看看这个 printBanner的方法,如下:

继续进去看这个 SpringApplicationBannerPrinter 方法,如下:

在 SpringApplicationBannerPrinter 类里面,我们知道默认会加载 banner.txt 进行打印,所以我们可以尝试来替换一下。

5.将断点设置在打印Banner处,去除其他断点

好了,设置好断点之后,我们就可以修改设置一个 banner.txt 进行文件替换,然后再重新debug 进来看看效果。

6.设置 banner.txt ,替换打印的信息

                   _ooOoo_  
                  o8888888o  
                  88" . "88  
                  (| -_- |)  
                   O\ = /O  
               ____/`---'\____  
             .   ' \\| |// `.  
              / \\||| : |||// \  
            / _||||| -:- |||||- \  
              | | \\\ - /// | |  
            | \_| ''\---/'' | |  
             \ .-\__ `-` ___/-. /  
          ___`. .' /--.--\ `. . __  
       ."" '< `.___\_<|>_/___.' >'"".  
      | | : `- \`.;`\ _ /`;.`/ - ` : | |  
        \ \ `-. \_ __\ /__ _/ .-` / /  
======`-.____`-.___\_____/___.-`____.-'======  
                   `=---='  

.............................................  
         佛祖保佑             永无BUG 

再次debug启动服务,可以查看打印信息如下:

注意:如果没有,那么则执行 maven clean 后,再执行。

7.创建应用上下文

我们可以查看一下变量,如下:

当执行了 refreshContext(context); 之后,IOC容器里面就创建了所有需要的 Bean

8.统计启动加载时长,以及回调监听器的启动完毕方法

9.监听器准备完毕,返回IOC容器

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 22-SpringBoot流程分析-run
    • SpringBoot流程分析-run
      • 源码解读
        • 1.完成了初始化动态,启动此应用
        • 2.初始化IOC容器,以及启动应用监听器
        • 3.开始环境模块准备
        • 4.打印Banner信息
        • 5.将断点设置在打印Banner处,去除其他断点
        • 6.设置 banner.txt ,替换打印的信息
        • 7.创建应用上下文
        • 8.统计启动加载时长,以及回调监听器的启动完毕方法
        • 9.监听器准备完毕,返回IOC容器
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档