Spring Boot(四):Spring Boot启动原理分析
创始人
2025-05-28 03:41:39
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博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...