Spring Boot:Spring Boot启动原理分析
Posted Lansonli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
以上是关于Spring Boot:Spring Boot启动原理分析的主要内容,如果未能解决你的问题,请参考以下文章
修改 Spring boot 启动端口号 Spring Boot 监听端口被占用无法启动
Spring Boot启动过程:Spring Boot内嵌Tomcat启动
Spring Boot学习总结(26)—— Spring Boot 容器启动详解