SPRING-BOOT启动流程--图解

本文详细解析了Spring-Boot的启动过程,从main方法执行到initialize,再到stopWatch和context的创建。主要内容包括初始化、BEAN创建及Spring的整合。通过流程图展示了启动关键点,同时介绍了markdown编辑器的各种功能快捷键和使用技巧。
摘要由CSDN通过智能技术生成

故事开篇

你好!Spring-boot启动流程能说一下吗?

每次听到这个问题,笔者都心想,不会,问这个有什么鸟用。笔者做项目的又不是拿钱研究源码的(面对一些面试官笔者也有过冲动想反问你公司请你来是专研究源码的吗)
但是后来自省,确实是非常有用的,包括你去使用一些SpringCloud的相关组件时想去完成一些高可用的事情就十分有用了,比如Zuul的动态路由配置、Config的客户端的高可用,备份配置存放等都与Spring的事件,Application的Event等关联十分紧密。

内容提要

本次引入了start-web,所以是按web项目启动的流程来讲的,其实也差不多的。只是会有两个类的判断返回结果不同而已。区别如下说明:
//分别判断javax.servlet.Servlet
//org.springframework.web.context.ConfigurableWebApplicationContext
//为什么会有这两个呢,因为有了start-web依赖,
//如果你没有依赖这个,这里的判断能力就返回的是false,即说明你当前启动的是非WEB型的项目
	this.webEnvironment = deduceWebEnvironment();//有了start-web依赖返回的是true

本次内容排布

本次还是以流程图的形式说明Spring-Boot启动过程中做了什么。会分成多个图来讲,所以阅读时一定要按顺序哦。

第一部分:启动main到initialize

这个图主要是说明了运行main方法时到创建SpringApplication时执行里面的initialize()的过程。因为这里执行完成了initialize后就执行run()方法了,即启动里主要的点。Spring-Boot启动流程initialize

第二部分:stopWatch到context

这是主角,包括了BEAN创建,与Spring的整合都是在这里完成的。看流程时要注意,Spring-Boot启动时有两次会重复执行的范围,下图大概标示一下。
重复执行代码标示
stopWatch到context流程分析图

stopWatch到context流程分析图

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去 博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。 1

注释也是必不可少的

Markdown将文本转换为 HTML。

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式

最低0.47元/天 解锁文章
esunlang
关注 关注
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过idea创建Spring Boot项目并配置启动过程图解
08-25
通过idea创建Spring Boot项目并配置启动过程图解 Spring Boot是基于Spring框架的一个子项目,旨在简化Spring应用程序的初始搭建和开发过程。使用Spring Boot可以快速搭建一个基于Spring的应用程序,只需要很少的...
SpringBoot系列之【启动流程详解】
qq_21609191的博客
05-12 1万+
文章目录前言一、SpringBoot特点二、SpringBoot启动类入口1.注解:@SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan2.main方法SpringApplication#run实例化SpringApplication对象SpringApplication.run(java.lang.String...)三、SpringBoot启动事件EventPublishingRunLis
springboot启动流程源码解析(带流程
zkr1234562的博客
11-26 4328
springboot启动流程源码解析(带流程
Springboot启动过程详解
最新发布
o0way0o的博客
08-22 2792
这是一个扩展功能,callRunners(context, applicationArguments) 可以在启动完成后执行自定义的run方法;有2中方式可以实现:a、实现 ApplicationRunner 接口b、实现 CommandLineRunner 接口接下来我们验证一把,为了方便代码可读性,我把这2种方式都放在同一个类里面import org。
一篇彻底弄透Springboot启动流程
wdj_yyds的博客
05-19 842
本文会对Springboot启动流程进行详细分析。但是请注意,Springboot启动流程Springboot的逻辑,请千万不要将Springboot启动流程相关逻辑与Spring的相关逻辑混在一起,比如把Spring的bean生命周期的逻辑混在Springboot启动流程中,那么整个体系就复杂且混乱了。所以本文仅重点关注Springboot启动流程,涉及Spring的部分,会略作说明并跳过。整体的一个结构如下。Springboot2.4.1Springboot启动时,第一件重要事件就是初始化。
9千字长文带你了解SpringBoot启动过程--史上最详细 SpringBoot启动流程-文并茂
热门推荐
weixin_44947701的博客
04-09 5万+
来自面试官发自内审深处的灵魂拷问:“说一下springboot启动流程”; 一脸懵逼的面试者:“它简化了spring的配置,主要是因为有自动装配的功能,并且可以直接启动,因为它内嵌了tomcat容器”; 面试官:“嗯, 没错,这是 它的一些概念,你还没回答我的问题,它是怎么启动的,启懂时都经过了哪些东西?”; 一脸懵逼的面试者:“额~~~不知道额····,我用的很熟练,但是不知道它里面做了哪些事情!”; 面试官:“了解内部原理是为了帮助我们做扩展,同时也是验证了一个人的学习能力,如果你想让自己的职业道路.
springboot进阶(8):图解Springboot启动流程
不积跬步,无以至千里
04-02 3202
文章目录前言springboot启动流程第一部分 new SpringApplication()第二部分 工厂对象构建实例第三部分 SpringApplication.run(启动此应用)第四部分 SpringApplicationRunListener第五部分 banner彩蛋 前言 研究springboot启动的整个流程。 springboot启动流程 第一部分 new SpringApplication() 第二部分 工厂对象构建实例 第三部分 SpringApplication.
Spring Boot Debug调试过程图解
08-25
Spring Boot Debug 调试过程图解 Spring Boot Debug 调试过程图解是指在 Spring Boot 项目中进行调试的过程图解。通过示例代码,详细介绍了 Spring Boot Debug 调试过程图解,对大家的学习或者工作具有一定的参考...
Spring Boot运行部署过程图解
08-25
Spring Boot运行部署过程图解 本文主要介绍了Spring Boot运行部署过程图解,通过示例代码对Spring Boot的运行部署过程进行了详细的介绍,对学习或者工作具有参考学习价值。 Spring Boot应用程序的入口点 在学习...
基于IDEA,Eclipse搭建Spring Boot项目过程图解
08-19
"基于IDEA、Eclipse搭建Spring Boot项目过程图解" 本文主要介绍了基于IDEA、Eclipse搭建Spring Boot项目的详细过程图解,通过示例代码对项目创建过程进行了详细的介绍,对大家的学习或者工作具有一定的参考学习价值...
Spring boot整合连接池实现过程图解
08-18
Spring Boot整合连接池实现过程图解 Spring Boot是一个流行的Java框架,用于构建基于Web的应用程序。连接池是一个非常重要的组件,在数据库应用程序中扮演着关键角色。连接池可以提高应用程序的性能和可靠性。在...
9千字长文带你了解SpringBoot启动过程–史上最详细 SpringBoot启动流程-文并茂
weixin_42113716的博客
10-07 8307
9千字长文带你了解SpringBoot启动过程–史上最详细 SpringBoot启动流程-文并茂
记录学习:springboot 启动流程
weixin_42852915的博客
04-11 783
继承的三个父类接口里,Closeable提供了关闭时资源释放的接口,Lifecycle是提供对生命周期控制的接口(start\stop)以及查询当前运行状态的接口,ApplicationContext则是配置上下文的中心配置接口,继承了其他很多配置接口,其本身提供查询诸如id、应用程序名等上下文档案信息的只读接口,以及构建自动装配bean的工厂。,该方法返回一个可编辑的PropertySources,如果有在启动阶段自定义环境的PropertySources的需求,就可以通过该方法设置。
Springboot2.x+MybaitsPlus3.x+甘特gantt任务进度系统项目实战
01-08
当今已经是spring的天下,spring生态圈中当属于微服务,而微服务的集成源自springboot。本系统取目前最新版本的springboot2.x的稳定企业实用版,加上mybatisPlus在mybatis的基础上只做增强不做改变,既能实mybatisplus的封装高效特性,也能用mybatis的本来方法,集成前端绚丽的bootstrap形成了一套完整的商业系统,要涨工作经验,项目实战是唯一个途径,还等什么?
Spring Boot启动流程
流楚丶格念的博客
08-24 2万+
- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 创建springbootApplication对象 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - 1. 创建springbootApplication对象springboot容器初始化操作 2. 获取当前应用的启动类型。2.1 :通过判断当前classpath是否加载servlet类,返回servlet web启动方式。
二十三张带你从源码分析Spring Boot 启动流程
qq_24692021的博客
11-17 983
spring boot
SpringBoot启动流程
m0_52058662的博客
02-10 3127
SpringBoot启动流程
SpringBoot启动流程
这是我的笔记本,记录学习历程,分享学习经验,菜鸡一枚,感谢支持!
04-25 4866
当一切准备就绪后,SpringBoot就会启动应用程序,如果是Web应用,就会启动内置的Web服务器,如果使用的是Web服务器,可以将应用程序打包成一个可以直接运行的jar文件。在此方法中,通过扫描Classpath中是否有预设的几个Web应用相关的类,来判断此应用是否是一个Web应用。我们的启动类,就是主类,使用了@SpringBootApplication注解标注,并且包含main方法的类。此处提供了几个Web关键类的全限定名,拿到了全限定名,就可以利用反射的机制来判断是否存在这些类。
Idea中Spring Boot项目创建与启动图解教程
本文档详细介绍了如何通过IntelliJ IDEA创建一个新的Spring Boot项目,并配置其启动过程。以下是整个步骤的详细阐述: 1. **创建新项目**: 在IDEA中,点击菜单栏的"File",然后选择"New",接着选择"Project"。在...
写文章

热门文章

  • SPRING-BOOT启动流程--图解 3022
  • SpringCloud-OpenFeign使用用okhttp替换不生效问题 2637
  • 使用SpringCloud Config结合github无法读取配置的问题 825
  • springcloud遇到的各种配置问题 778
  • 如何做好数字人民币的过渡与普及 753

分类专栏

  • 数字货币 1篇
  • CMMI 1篇
  • springcloud问题栏
  • springcloud 4篇

最新评论

  • SpringCloud-OpenFeign使用用okhttp替换不生效问题

    it_is_me: 不需要重新注入,你查看下OkHttpFeignLoadBalancedConfiguration

  • SpringCloud-OpenFeign使用用okhttp替换不生效问题

    Wsrgod: 网上找了好久,终于找到有用的帖子了

  • SpringCloud-OpenFeign使用用okhttp替换不生效问题

    svganimator: 你是我心中的太阳

  • springcloud遇到的各种配置问题

    不正经的kimol君: 大佬就是大佬,写得很棒呀

  • SpringCloud-Zuul执行流程分析

    esunlang: 新年同乐

大家在看

  • C++ 注释详解
  • 介绍开源的灵巧手的项目 129
  • 基于jspm高校工会信息管理系统的设计与实现 337
  • Stable Diffusion 使用详解(12)--- 设计师风格变换
  • 【入门】角谷猜想

最新文章

  • 如何做好数字人民币的过渡与普及
  • 向CMMI进军之开始理解
  • springcloud遇到的各种配置问题
2022年1篇
2021年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家吉林火烈鸟玻璃钢雕塑生产厂家浙江公园玻璃钢雕塑供应商江门玻璃钢仿真马雕塑广州城建绿化玻璃钢花盆四川玻璃钢景观雕塑宁波玻璃钢仿铜雕塑定制价格奶牛玻璃钢雕塑好评评语南京玻璃钢花盆采购哈尔滨玻璃钢仿铜麒麟雕塑韶关玻璃钢商场美陈开县玻璃钢游乐场门头雕塑辽宁商场美陈雕塑制作清远大型玻璃钢雕塑福建特色商场美陈销售公司浙江玻璃钢金属雕塑方案北欧风格玻璃钢雕塑四川商场美陈研发云浮园林玻璃钢动物雕塑韶关玻璃钢香蕉雕塑宣威市玻璃钢雕塑佛山银辉玻璃钢雕塑有限公司玻璃钢龙柱雕塑太原玻璃钢雕塑厂家电话北京抽象玻璃钢雕塑优势无锡玻璃钢雕塑报价表焦作卡通玻璃钢雕塑九台区玻璃钢雕塑工程产品介绍水富市玻璃钢雕塑怎么样成都欧式玻璃钢雕塑优势道教玻璃钢雕塑哪家好香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化