Spring Boot 介绍

1、SpringBoot 介绍

用通俗的话讲,SpringBoot 在Spring生态基础上发展而来,它的发现不是取代Spring,是为了让人们更容易使用Spring。

2、相关依赖关系

Spring IOC/AOP => Spring => Spring Boot => Spring Cloud

3、 SpringBoot工作原理

Spring Boot 在启动时会去依赖的 Starter 包中寻找 resources/META-INF/spring.factories ⽂件, 然后根据⽂件中配置的 Jar 包去扫描项⽬所依赖的 Jar 包。根据 spring.factories 配置加载 AutoConfigure 类,然后根据@Condition注解条件,进行自动配置,并且将Bean注入Spring Context。SpringBoot 项目自动配置实现方式在启动类添加@SpringBootApplication,此注解是
@Configuration、@ComponentScan、@EnableAutoConfiguration组成, 其中 @EnableAutoConfiguration 是实现⾃动配置的⼊⼝,该注解⼜通过 @Import 注解导⼊了
AutoConfigurationImportSelector ,在该类中加载 META-INF/spring.factories 的配置信息。然后筛选
出以 EnableAutoConfiguration 为 key 的数据,加载到 IOC 容器中,实现⾃动配置功能。

4、编写自定义SpringBoot自动配置组件

要编写SpringBoot 自定义自动配置的组件,就先说一下SPI,SPI英⽂为Service Provider Interface单从字⾯可以理解为Service提供者接口,正如从SPI的名字去理解SPI就是Service提供者接口,很多框架使用了java的SPI 机制。例如Dubbo的扩展实现。Spring Boot通过 ImportSelector 的实现来完成Spring上下⽂的加载,比如@EnableAutoConfiguration这个注解,就会开启EnableAutoConfigurationImportSelector,然后去扫描ETA-INF下的spring.factories,Spring Boot通过 ImportSelector 的实现来完成Spring上下⽂的加载,我们的⾃定义组件都是在 src/main/resources ⽬录下创建⽂件夹 META-INF ,在 META-INF 中创建 spring.factories。如下截图我们以SpringCloud 为例(SpringCloud 各个组件),例如下面截图,


在这⾥⾯定义 EnableAutoConfiguration 、 ApplicationListener 和 BootstrapConfiguration ,都是以键
值对出现,从上面的截图可以看到注解完整的路径名称。@EnableAutoConfiguration,@BootstrapConfiguration都是启动注解,一个引导父容器,一个引导字容器。将不同Class引入Spring 容器。

相关推荐
葫芦和十三21 分钟前
图解 MongoDB 07|索引类型:七种索引,七种访问形状
后端·mongodb·agent
朦胧之2 小时前
AI 编程-老项目改造篇
java·前端·后端
爱勇宝5 小时前
我做了一个只用来搜歌词的小 App
android·前端·后端
IT_陈寒6 小时前
SpringBoot自动配置坑了我一晚上,原来问题出在这
前端·人工智能·后端
SelectDB6 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
SelectDB6 小时前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
程序猿大帅6 小时前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
PinkSun6 小时前
Spring AI ChatMemory踩坑实录:重启丢数据、Agent丢记忆、对话溢出
后端·ai编程
壹方秘境6 小时前
我用Go语言开发了一个跨平台的HTTPS抓包和调试工具
前端·后端·ios
神秘面具男6 小时前
HarmonyOS 6.0跨端远程控制
前端·后端