IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot 高级 原理分析 -- SpringBoot启动流程分析 -> 正文阅读

[Java知识库]SpringBoot 高级 原理分析 -- SpringBoot启动流程分析

1. SpringBoot启动流程分析

下面是SpringBoot完整的启动流程
在这里插入图片描述

说明:本节案例承接SpringBoot 高级 原理分析 – 监听机制,我们通过Debug的方式去查看启动的流程:


1.1 流程分析:初始化


1.1.1 在程序的入口处打一个断点

在这里插入图片描述

说明:

在这里插入图片描述

点击Step into 进入run方法内部:

在这里插入图片描述

SpringApplication对象是事件源的对象,将来SpringBoot里面所有的事件对象都是这个对象里面产生的。

我们点到SpringApplication的构造方法,并在里面打上断点,并把断点放过来:

在这里插入图片描述

继续Step over,会判断是否是Web的环境(当前不是Web的环境):

在这里插入图片描述

deduceFromClasspath()方法判断是否是Web环境,就是判断当前环境有没有Servlet相关的class

在这里插入图片描述

继续Step over,设置初始化程序Initializer,和监听器(listeners):

在这里插入图片描述
在这里插入图片描述


1.1.2 初始化的内容(截取上面的图)

在这里插入图片描述


1.2 SpringBoot流程分析

我们回到最开始run方法:

在这里插入图片描述

现在可以查看初始化的成果了:

在这里插入图片描述

可以发现已经拿到了初始化的resouce和初始化程序Initializer,和监听器(listeners)和初始化化参数name=tianjiao等等。

在这里插入图片描述

查看SpringApplicationRunListeners:

在这里插入图片描述

在这里插入图片描述

继续Step Over调用listeners的starting方法,这会启动所有的listeners。

在这里插入图片描述

开始准备配置环境:

在这里插入图片描述在这里插入图片描述

打印图案Banner:

在这里插入图片描述

打印图案Banner可以自定义:

在这里插入图片描述

在这里插入图片描述
我们把其他断点去掉,留下banner的断点,并把代码done掉。
在这里插入图片描述

添加banner.txt
在这里插入图片描述

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

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

放行断点,查看自定义的打印图案
在这里插入图片描述

创建和准备IOC容器:

在这里插入图片描述

在这里插入图片描述

这时候IOC容器已经创建和准备好了,但是bean还没有全部加载进来。
在这里插入图片描述在这里插入图片描述

只有当refreshContext后才会注入所有IOC管理的bean:

在这里插入图片描述
在这里插入图片描述

成功启动项目:

在这里插入图片描述



  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:30:07  更:2021-11-19 17:32:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:08:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码