【SpringBoot】SpringBoot的运行原理

ops/2024/11/13 9:07:19/

 SpringBoot项目中都有一个如下的启动类。

java">
@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class,args);}
}

其中@SpringBootApplication是这个启动类的核心注解,在它下面又有三个子注解如下:

  1. @SpringBootConfiguration:配置当前启动类为Bean
  2. @EnableAutoConfiguration:自动扫描所有启动器依赖中的配置类。
  3. @ComponentScan:自动扫描启动类所在的包及其子包下使用了@Bean注解的类及其方法。

其中@EnableAutoConfiguration这个注解也是比较核心的。

  • @EnableAutoConfiguration 借助自己的一个子注解@Import 的帮助,将所有符合自动配置条件的 bean 定义加载到 IoC 容器。

而main中SpringApplication.run()的作用主要有两个

  1. 创建SpringApplication对象:进行相关资源的加载,解析@SpringBootApplication注解。
  2.  调用的是创建的SpringApplication对象的run方法,然后使用资源并启动Tomcat。

 下面介绍一下SpringBoot启动的全过程(部分),如下图所示。

看源码如下:

 

 

之后run方法会遍历这个List集合中的类路径信息。并反射调用类对象,完成Bean的配置。

然后就会用到我们的yml文件了

 稀里糊涂的写完了。。。。。。


http://www.ppmy.cn/ops/95832.html

相关文章

Ma Spaghet!

目录 一、题目 二、思路 三、payload 3.1 方案一 3.2 方案二(官方) 四、思考与总结 一、题目 <!-- Challenge --> <h2 id"spaghet"></h2> <script>spaghet.innerHTML (new URL(location).searchParams.get(somebody) || "Somebody…

class_2:数学运算和注释

1、运算符优先级 2、导入算数库 import matha -1 b -2 c 3 #一元二次方程 delta b ** 2 -4*a*c print((-b math.sqrt(delta))/(2*a)) print((-b - math.sqrt(delta))/(2*a)) 3、注释

将 PDF 转换为 JPG 的 3 种简便方法

PDF&#xff08;Portable Document Format&#xff09;是Adobe公司开发的一种用于呈现文档的常用文件格式。PDF文件可以包含图像和文本。它承载着固定布局平面文档的完整描述&#xff0c;包括文本、字体、图像等信息。但很多时候&#xff0c;你需要将PDF转换为JPG。 您想将PDF…

代码随想录算法训练营第十六天| 513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树

目录 一、LeetCode 513.找树左下角的值思路&#xff1a;C代码 二、LeetCode 112. 路径总和思路C代码 二、LeetCode 106.从中序与后序遍历序列构造二叉树思路C代码  总结 一、LeetCode 513.找树左下角的值 题目链接&#xff1a;LeetCode 513.找树左下角的值 文章讲解&#xff…

数据库系统 第17节 数据仓库 案例赏析

下面我将通过几个具体的案例来说明数据仓库如何在不同的行业中发挥作用&#xff0c;并解决实际业务问题。 案例 1: 零售业 背景: 一家大型零售商希望改进其库存管理和市场营销策略&#xff0c;以提高销售额和顾客满意度。 解决方案: 数据仓库: 构建一个数据仓库&#xff0…

智能调度 | 多台AGV为什么不会撞在一起?

AGV叉车 随着智能仓储物流系统、柔性制造系统的广泛应用&#xff0c;工厂自动化、计算机集成制造系统技术的逐步发展&#xff0c;常见的智能装备AGV小车的功能愈发齐全&#xff0c;应用范围与技术水平也得到迅猛发展。 AGV作为仓储物流自动化搬运装卸的重要工具&#xff0c;通…

流量分析0.o

[陇剑杯 2021]签到 此时正在进行的可能是__________协议的网络攻击。&#xff08;如有字母请全部使用小写&#xff0c;填写样例&#xff1a;http、dns、ftp&#xff09;。得到的flag请使用NSSCTF{}格式提交。 过滤协议 例子:tcp&#xff0c;udp&#xff0c;arp&#xff0c;i…

微信小程序子组件调用父组件的方法

来源&#xff1a;通义千文2.5 步骤 1: 定义父组件中的方法 首先&#xff0c;在父组件中定义一个方法&#xff08;如 handleClick&#xff09;&#xff0c;并准备一个用于接收子组件传来的数据的方法。 父组件&#xff08;Parent.wxml&#xff09; html<!-- parent.wxml …