当前位置: 首页 > news >正文

SpringBoot 启动流程一

SpringBoot启动流程一

我们首先创建一个新的springboot工程

我们不添加任何依赖

查看一下pom文件

我们创建一个文本文档

记录我们的工作流程

我们需要的是通过打断点实现

我们首先看一下启动响应类

package com.bigdata1421.start_up;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class StartUpApplication {public static void main(String[] args) {SpringApplication.run(StartUpApplication.class, args);}}

我们在这里启动

加载main方法

调用第10行的方法

这个run方法是干嘛的呢

我们进入源码查看

primarySource是指这个类

如果一个接口有四个实现类

但是你想设置某一个实现类为主体加载的

你就可以加上@Primary注解

这样这个实现类就是在自动转配中被加载的bean

我们再进入SpringApplication类里面run方法

中的run方法

是另一个run方法

我们再进入这个方法查看

我们在文本文档里记录一下

运行的是SpringApplication里面822行的这个方法

但是我们发现我们还是调用这个类里面的方法

再记录一下

我们在文本文档里再记录一下

StartUpApplication[10] -> SpringApplication.run(StartUpApplication.class, args);SpringApplication[822] -> return run(new Class[]{primarySource}, args);SpringApplication[826] -> return (new SpringApplication(primarySources)).run(args);

这就是一个纯调用

去new了一个SpringApplication对象 让这个对象去调用run方法

参数为args这个数组

这个参数为命令行参数

我们可以在项目配置里面编辑这个参数

然而这个我们可以分成两部分

创建一个新的对象 用这个新的对象去调用方法

StartUpApplication[10] -> SpringApplication.run(StartUpApplication.class, args);SpringApplication[822] -> return run(new Class[]{primarySource}, args);SpringApplication[826] -> return (new SpringApplication(primarySources)).run(args);# 加载各种配置信息 初始化各种配置对象SpringApplication(primarySources)# 初始化容器new  SpringApplication(primarySources).run(args)

我们的核心就是这两块的内容

加载各种配置信息 初始化各种配置对象

初始化容器

个人号推广

博客主页

朱道阳-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

相关文章:

SpringBoot 启动流程一

SpringBoot启动流程一 我们首先创建一个新的springboot工程 我们不添加任何依赖 查看一下pom文件 我们创建一个文本文档 记录我们的工作流程 我们需要的是通过打断点实现 我们首先看一下启动响应类 package com.bigdata1421.start_up;import org.springframework.boot.Spr…...

打印机删除副本以后无法安装打印机驱动

根据知乎文章解决打印机驱动副本存在多个,打印机驱动无法删除,或者驱动包无法删除等问题。的方法删除打印机副本以后发现无论如何也装不上驱动了。 要么驱动安装成功,但是设备仍然是指定状态。 后面发现是删错文件夹了,教程里让删…...

Vue3中为Ant Design Vue中Modal.confirm自定义内容

在一次业务开发时代码时,碰到了一种既想要Modal.confirm样式,又想要定制其content内容的情况。 大部分情况下,使用Modal.method()这种方式时,可能content内容固定都是字符串,那如果想要做更高级的交互怎么办&#xff…...

智能猫砂盆到底哪家好用?自费实测聚宠、糯雪、CEWEY真实反馈!

快到夏天了,是不是还有人因为没挑选到喜欢的智能猫砂盆而苦恼着?太便宜怕不好用,太贵怕质量比不上价格。来来去去拖到现在还没决定,我作为养了四年猫的资深铲屎官,今天就来给大家传授经验,关于我是怎么从好…...

初阶数据结构之二叉树

那么本篇文是初阶数据结构这个系列的最后一篇文章,那么闲话少叙,我们直接进入正题 在讲二叉树的一些之前知识点之前,我先给大家送个小礼物哈 手搓二叉树 typedef int BTDataType ; typedef struct BinaryTreeNode { BTDataType _data …...

代码随想三刷动态规划篇8

代码随想三刷动态规划篇8 122. 买卖股票的最佳时机 II题目代码 123. 买卖股票的最佳时机 III题目代码 188. 买卖股票的最佳时机 IV题目代码 309. 买卖股票的最佳时机含冷冻期题目代码 122. 买卖股票的最佳时机 II 题目 链接 代码 class Solution {public int maxProfit(int…...

​​服务拆分的原则

目录 一、单一职责原则 二、服务自治原则 三、单向依赖 一、单一职责原则 单⼀职责原则原本是面向对象设计中的⼀个基本原则, 它指的是⼀个类应该专注于单⼀功能. 不要存在多于⼀个导致类变更的原因 在微服务架构中, ⼀个微服务也应该只负责⼀个功能或业务领域, 每个服务应该…...

离线安装docker社区版

提示:以下所有命令都在Ubuntu-24.04-live-server-amd64系统中运行 文章目录 前言一、离线包制作二、在目标系统上离线安装Docker CE总结 前言 安全原因,内部机器不能联网,要给新机器安装 docker-ce 只能使用离线安装方法。如果使用本文的下载…...

徒手绘制 Android 通用进度条

拖动条&#xff08;FlexSeekBar&#xff09;&#xff0c;在Android的各个地方都非常常用&#xff0c;本文旨在自研一套通用的进度条&#xff0c;非常适合车载App使用 样式如下&#xff1a; 使用示例 <!--默认用法--> <com.max.android.ui.seekbar.FlexSeekBarandroi…...

【TB作品】矩阵键盘电话拨号,ATMEGA16单片机,Proteus仿真 atmega16矩阵键盘电话拨号

atmega16矩阵键盘电话拨号 c代码和仿真图&#xff1a; 使用ATmega16实现矩阵键盘电话拨号功能 项目背景 在电子设计和嵌入式系统开发中&#xff0c;矩阵键盘是常见的人机交互方式。它可以实现较多按键的输入&#xff0c;同时节省单片机的I/O资源。结合LCD显示和蜂鸣器&am…...

JavaScript(6)——数据类型转换

为什么需要类型转换&#xff1f; JavaScript是弱数据类型&#xff1a;JavaScript不知道变量到底属于哪种数据类型&#xff0c;只有赋值了才清除 使用表单&#xff0c;prompt获取的数据默认为字符串类型&#xff0c;此时不能直接进行算数运算 隐式转换 某些运算符被执行时&am…...

概率论与数理统计_下_科学出版社

contents 前言第5章 大数定律与中心极限定理独立同分布中心极限定理 第6章 数理统计的基本概念6.1 总体与样本6.2 经验分布与频率直方图6.3 统计量6.4 正态总体抽样分布定理6.4.1 卡方分布、t 分布、F 分布6.4.2 正态总体抽样分布基本定理 第7章 参数估计7.1 点估计7.1.1 矩估计…...

Android 复习layer-list使用

<shape android:shape"rectangle"> <size android:width"1dp" android:height"100px" /> <solid android:color"#FFFFFF" /> </shape> 通过shape画线段,通过 <item android:gravity"left|top"…...

汉光联创HGLM2200N黑白激光多功能一体机加粉及常见问题处理

基本参数&#xff1a; 机器型号&#xff1a;HGLM2200N 产品名称&#xff1a;A4黑白激光多功能一体机 基础功能&#xff1a;打印、扫描、复印 打印速度&#xff1a;22页/分钟 纸张输入容量&#xff1a;150-249页 单面支持纸张尺寸&#xff1a;A4、A5、A6 产品尺寸&#x…...

引领汽车软件开发走向ASPICE认证之路

亚远景科技与ASPICE认证的关系可以从以下几个方面来阐述&#xff1a; (要明确的是&#xff1a;在ASPICE行业中专业来说&#xff0c;ASPICE项目是没有认证&#xff0c;而只有评估。不过&#xff0c;为了方便沟通&#xff0c;人们常将这一评估过程称为认证。&#xff09; 行业专…...

【C/C++ new/delete和malloc/free的异同及原理】

new/delete和malloc/free都是用于在C&#xff08;以及C语言在malloc/free的情况下&#xff09;中动态申请和释放内存的机制&#xff0c;但它们之间存在一些显著的异同点。以下是对这两组函数/运算符的异同点的详细分析&#xff1a; 相同点 目的相同&#xff1a;两者都用于在堆…...

Maven Archetype 自定义项目模板:高效开发的最佳实践

文章目录 前言一、Maven Archetype二、创建自定义 Maven Archetype三、定制 Archetype 模板四、手动创建 Archetype 模板项目五、FAQ5.1 如何删除自定义的模板5.2 是否可以在模板中使用空文件夹 六、小结推荐阅读 前言 在软件开发中&#xff0c;标准化和快速初始化项目结构能够…...

vue的ESLint 4格缩进 笔记

https://chatgpt.com/share/738c8560-5271-45c4-9de0-511fad862109 一&#xff0c;代码4格缩进设置 .eslintrc.js文件 module.exports { "rules": { "indent": ["error", 4] } }; 自动修复命令 npx eslint --fix "src/**/*.{…...

【前端项目笔记】8 订单管理

订单管理 效果展示&#xff1a; 在开发功能之前先创建分支order cls 清屏 git branch 查看所有分支&#xff08;*代表当前分支&#xff09; git checkout -b order 新建分支order git push -u origin order 将本地的当前分支提交到云端仓库origin中命名为order 通过路由方式…...

构建Yarn依赖树:深入解析与实践指南

构建Yarn依赖树&#xff1a;深入解析与实践指南 在现代JavaScript开发中&#xff0c;依赖管理是项目成功的关键。Yarn&#xff0c;作为Node.js生态系统中一个强大的包管理器&#xff0c;以其快速、可靠和安全的特性而闻名。本文将深入探讨Yarn如何构建依赖树&#xff0c;并提供…...

告别手动分类!用Python+ArcPy批量处理DEM,一键生成坡度坡向等高线报告

用PythonArcPy实现DEM地形分析全自动化&#xff1a;从数据到报告的智能工作流 第一次接手山区风电项目的地形分析任务时&#xff0c;我花了整整三天时间在ArcGIS界面里反复点击同样的按钮——加载DEM、计算坡度坡向、生成等高线、调整分类阈值、导出图片。当第五个区域的报告终…...

UE5 UMG界面开发避坑指南:WidgetComponent的ZOrder和图层管理到底怎么用?

UE5 UMG界面开发避坑指南&#xff1a;WidgetComponent的ZOrder和图层管理实战解析在虚幻引擎5的UMG界面开发中&#xff0c;WidgetComponent的渲染层级管理是一个看似简单却暗藏玄机的技术点。许多开发者在处理复杂UI系统时&#xff0c;常常会遇到控件遮挡混乱、图层顺序失控的问…...

告别U盘!用CentOS 7.9 + iPXE + dnsmasq搭建一个能同时装CentOS 7、AlmaLinux 8和Ubuntu 22.04的万能PXE服务器

打造全能PXE装机服务器&#xff1a;CentOS 7.9iPXEdnsmasq混合系统部署指南 当机房里的服务器数量超过两位数时&#xff0c;U盘安装系统就像用滴管给游泳池注水——效率低得令人发指。我曾用三个通宵手动安装了50台服务器&#xff0c;直到发现PXE网络装机这个"工业级"…...

从PointNet到Transformer:聊聊‘参数共享’这个省内存又提性能的炼丹技巧

从PointNet到Transformer&#xff1a;参数共享如何重塑深度学习效率 在深度学习模型日益复杂的今天&#xff0c;算法工程师们不断面临一个核心矛盾&#xff1a;如何在保持模型性能的同时&#xff0c;有效控制参数规模&#xff1f;当我们处理点云、序列或图结构这类不规则数据时…...

多模态融合在死因推断中的应用:特征级与决策级融合策略对比

1. 项目概述&#xff1a;当AI遇见死因推断&#xff0c;多模态融合如何破局&#xff1f;在公共卫生和流行病学领域&#xff0c;准确推断死因&#xff08;Cause of Death, COD&#xff09;是评估疾病负担、制定卫生政策的基础。然而&#xff0c;在资源有限的地区&#xff0c;获取…...

3分钟掌握猫抓扩展:浏览器资源嗅探的完整实用指南

3分钟掌握猫抓扩展&#xff1a;浏览器资源嗅探的完整实用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页上的视频无法保存而烦恼吗…...

机器学习可持续性实践指南:从模型优化到绿色AI的工程落地

1. 项目概述&#xff1a;当机器学习遇见可持续性 在过去的十年里&#xff0c;我亲眼见证了机器学习从实验室的“黑科技”演变为驱动各行各业的核心引擎。从推荐系统到自动驾驶&#xff0c;模型的复杂度和规模呈指数级增长&#xff0c;随之而来的是一个我们无法回避的现实&#…...

匿名内部类的使用场景 java反射机制

一、匿名内部类的使用场景匿名内部类是一种没有显式类名、直接在创建对象时定义并实例化的内部类。它通常用于“一次性使用”的场景&#xff0c;让代码更简洁紧凑。主要使用场景包括&#xff1a;1. 事件监听器&#xff08;GUI 编程&#xff09;在 Swing、AWT 或 Android 开发中…...

从备份到部署:用Clonezilla为网吧/机房批量克隆系统镜像的实战流程

从备份到部署&#xff1a;用Clonezilla为网吧/机房批量克隆系统镜像的实战流程在网吧、学校机房或企业IT部门中&#xff0c;面对数十台甚至上百台配置相同的计算机&#xff0c;如何高效完成系统部署和环境统一&#xff1f;传统逐台安装的方式不仅耗时费力&#xff0c;还难以保证…...

别再为Unity视频播放发愁了!Video Player从创建到避坑,保姆级教程带你搞定

Unity视频播放全攻略&#xff1a;从基础配置到高级避坑技巧在游戏开发中&#xff0c;视频播放功能看似简单&#xff0c;却暗藏诸多玄机。无论是开场动画、过场剧情还是UI背景&#xff0c;流畅的视频体验直接影响玩家第一印象。本文将带你深入Unity Video Player的每一个细节&am…...