Spring Boot(四):Spring Boot启动原理分析
创始人
2025-05-28 03:08:29
0

文章目录

Spring Boot启动原理分析

一、依赖导入原理

二、Spring Boot包扫描原理 

三、Spring Boot自动配置原理


Spring Boot启动原理分析

一、依赖导入原理

父项目版本控制

ctrl + 点击spring-boot-starter-parent进入

继续点击,进入spring-boot-dependencies

这里管理着springboot中所有依赖的版本,是一个版本控制中心,导入依赖如果不写版本就用这里的版本。 

spring-boot-starter-web也就是web启动器,导入和很多web的依赖。

二、Spring Boot包扫描原理 

点击进入@SpringBootApplication注解

点击进入@SpringBootConfiguration注解

@SpringBootConfiguration上面有一个Configuration表示这是一个配置类

配置类上面有@Component说明也是容器中的一个组件

接着我们再回到SpringBootApplication.class文件的@EnableAutoConfiguration注释,点击进入。

@EnableAutoConfiguration 启用自动配置功能

springboot中没有做任何配置,springboot自动帮助我们配置,但是要通过该注解才能生效。

点击 @AutoConfigurationPackage(自动配置包)进入分析

@Import(AutoConfigurationPackages.Registrar.class) 导入AutoConfigurationPackages.Registrar类

@Import是spring的底层注解,给容器导入一个组件

通过debug进行启动

然后再这里右击计算

输入评估表达式:

new PackageImports(metadata).getPackageNames();

计算结果:

将配置类@SpringBootApplication标注的类所在包及下面所有子包里的所有组件扫描到spring容器。

三、Spring Boot自动配置原理

点击@SpringBootApplication,再点击@EnableAutoConfiguration进入类文件。

@Import(AutoConfigurationImportSelector.class)

public @interface EnableAutoConfiguration {

给容器中导入一些组件的选择器。

点击进入AutoConfigurationImportSelector.class文件,可以看到getCandidateConfigurations方法。

启动debug对方法进行断点调试,可以看到配置数据。

这些自动配置类给我们当前项目的场景提供了一些组件和配置,有了自动配置就免除类手动编写配置文件,注入等等功能。

该jar包提供一系列的配置类,替换掉了我们的XML配置信息。

默认加载如下配置文件

对于Spring Boot的启动分析简单到这里,有兴趣可以按照上述操作进行源代码详细分析。


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

相关内容

热门资讯

LeetCode 112. 路... LeetCode 112. 路径总和        给你二叉树的根节点 root 和一个表示目标和的...
最新或2023(历届)新生婴儿...   新生儿落户口办理程序:  1、用医院开具的孩子出生证明到当地的妇幼保健站开具正式的出生医学证明。...
最新或2023(历届)新生儿户...   新生儿申报户口须知:  一、办理条件 新生婴儿可按随父随母自愿的原则申报户口。非婚生育的新生婴儿...
新生儿落户办理户口时间限制,新...   新生儿作为国家未来的主体,国家在一些政策上也是有规定的,那么新生儿落户政策有哪些呢?新生儿在落户...
最新或2023(历届)深圳户口...  第一项——调干条件 根据 人事局颁布相关政策,调干的方式及条件分别为:  一、单调 1、享受国务院...
最新或2023(历届)毕业生办... 市民您好!感谢您对公安工作的支持与理解。根据您提出的问题,依据我市现行的户口政策,现答复如下:需本人...
TDK| 电源——反激变压器设... 电源参数根据功率、输入输出的情况,我们选择反激电源拓扑。反激式变压器的优点有:1、 电...
[个人笔记] 投影矩阵的导数计... [个人笔记] 投影矩阵的导数计算(1) 问题(2ÿ...
19.特殊工具与技术 文章目录特殊工具与技术19.1控制内存分配19.1.1重载new和deleteoperator ne...
最新或2023(历届)最新户口... 户口迁移手续[网友提问]人在北京上班三年,现在想在北京定居落户。可是户口还在老家湖南。想把湖南户口迁...
揭秘:春秋战国时代的美食 春秋... 我们今天再来说说春秋战国的饮食。新春佳节,寒冬腊月,三五好友,围坐于火锅旁,天南海北的胡侃,便是人生...
宁都起义简介 起义的环境,过程... 宁都起义,又名26路军起义,1931年(民国二十年)12月,在第二次国内革命战争中,国民革命军第26...
他是战国猛将,一生做错三件事 ... 战国时期,诸侯皆有争霸之心,都养兵买马,意图问鼎天下,而乱世之中,最易脱颖而出的是四处征战的将领。战...
曹操座下大谋士,却被诸葛亮骂死... 魏武帝曹操在东汉末年先后击败二袁、吕布、刘表等豪强,多次以弱克强,最终统一北方,为后来新的大一统国家...
安全防御策略trust-unt... 策略实验一,规划分析和拓扑图的搭建二,配置思路1,先配置F...
曹操座下大谋士,却被诸葛亮骂死... 魏武帝曹操在东汉末年先后击败二袁、吕布、刘表等豪强,多次以弱克强,最终统一北方,为后来新的大一统国家...
nodejs篇 express... 文章目录前言express介绍安装RESTful接口规范express的简单使用一个最简单的服务器&...
redsi的无锁原子操作以及分... 并发访问控制对应的操作主要是数据修改操作。当客户端需要修改数据时,基本流程分成两步&#...
selenium(5)----... 1)alert框的处理 前提:我们是不可以通过控制台直接定位元素的方式去选中这个alert框的&#x...
湘军六千精锐战死,曾国藩大呼&... 1858年十月末,安徽庐州三河镇内外人马喧嚣,六千湘军屯兵镇外,与驻守三河镇的太平军彼此虎视眈眈。此...