SpringBoot运行原理初探
运行原理之POM文件
1.每个springboot项目都有一个parent依赖,pom文件如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2.进入starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.7.3</version>
</parent>
可以看到spring-boot-dependencies依赖,这里就是springboot所需要的依赖包,进入查看会发现定义了依赖包的版本信息以及依赖隐式定义。
注:spring-boot-starter-XXX 是场景启动器,如果springboot项目中引入场景启动器,则spring会主动将所需要以来的jar自动引入
运行原理之@SpringBootApplication注解
1.@SpringBootApplication
@SpringBootApplication 是SpringBoot项目的主入口函数,表示spring项目启动从此开始。
继续进入SpringBootApplication
包含最主要的@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan注解,下面一一分析
(1)@SpringBootConfiguration
像一个洋葱一样,一层一层一层剥开他的心...
@SpringBootConfiguration--->@Configuration--->@Component
Configuration对应的就是Spring xml文件
Component对应的是xml中配置的bean
说到底SpringBootConfiguration还是一个Spring Bean的组件
2.@EnableAutoConfiguration
-@EnableAutoConfiguration : 开启自动配置功能,以前我们配置东西都需要自己手动配置,现在通过EnableAutoConfiguration来通知SpringBoot开启自动配置功能,这样自动配置才会生效。
-@AutoConfigurationPackage: 自动配置包
-@import: Spring底层注解import,给容器导入一个组件;
Registrar.class 扫描主启动类所在包的以及下面所有子包的组件,添加到Spring容器中。
AutoConfigurationImportSelector: 将spring.factories的配置添加到Spring容器中。
3.@ComponentScan
这个注解在Spring中非常重要,它对应Spring中的XML配置中的元素。
Component自动扫描并加载复核条件的组件或Bean,将这个Bean定义加载到IOC容器中。
SpringApplication主函数方法
SpringApplication的main方法,开启了一个服务(进程)
分析SpringApplication.run()方法,主要分析SpringApplication的实例化,run方法的执行;
SpringApplication实例化只要做了如下事情:
1.判断启动应用的类型是普通项目还是web项目(通过判断是否引入web模块)
2.查找并加载所有可用的初始化器,设置到initializers属性中
3.查找所有的程序监听器,设置到listeners属性中
4.找到服务运行的主类、
下图为run方法运行的流程分析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App