Spring Boot 自动装配原理

1、Spring Boot 自动装配是什么?

SpringBoot 自动装配主要是基于注解编程 和 约定优于配置的思想来设计的。

自动装配就是由 Spring 自动把其他组件中的 Bean 装载到 IoC 容器中,不需要开发人员再去配置文件中添加大量的配置。我们只需要在 Spring Boot 的启动类上添加 @SpringBootApplication 注解,开启自动装配。这种自动装配的思想,在 Spring 3.x 以后就开始支持,我们只要在类上添加 @Enable 注解就可以了,只是没有像 Spring Boot 这样全面地去设计。

因此,Spring 和 Spring Boot 的最大区别就是在于 Spring Boot 的自动装配。那自动装配的原理又

是什么呢?

2、自动装配原理

@SpringBootApplication 这个注解是暴露给用户使用的入口,它的底层是由

@EnableAutoConfiguration 这个注解来实现的。

这样一个自动装配的实现,我把它归纳为以下三个核心步骤:

第一步:启动依赖组件的时候,组件中必须包含 @Configuration 的配置类,在这个配置类里面声明为 @Bean 注解,就将方法的返回值或者属性值 注入 IoC 容器中。

第二步:如果是使用第三方 jar 包,Spring Boot 采用 SPI 机制,只需要在/META-INF/目录下增加

spring.factories 配置文件。然后,Spring Boot 会根据约定规则,自动使用 SpringFactoriesLoader

来加载配置文件中的内容。

第三步:Spring 获取到第三方 jar 中的配置以后,会使用调用 ImportSelector 接口来完成动态加载。这样的设计的好处在于,大幅减少了臃肿的配置文件,而且各模块之间的依赖实现了深度解耦。比如,我们使用 Spring 创建 Web 程序时需要导入非常多的 Maven依赖,而 Spring Boot 只需要一个 Maven依赖来创建 Web 程序,并且 Spring Boot 还把我们最常用的依赖都放到了一起,我们只需要 引入spring-boot-starter-web 这一个依赖就可以完成一个简单的 Web 应用。

以前用 Spring 的时候需要 XML 文件配置开启一些功能,现在 Spring Boot 不用 XML 配置了,只需要写一个, 加了@Configuration 注解 或者实 现对应接口的配置类就可以了。

相关推荐
智能直播1 小时前
RK3528 V4L2 框架 UVC 接口自动获取 H.264 / MJPEG / YUYV 格式:从内核采集到硬解分发
java·网络·实时音视频·视频编解码·h.264
Bazingga1 小时前
一次推理的完整旅程:ReAct推理深度解析
后端
171320330计算机毕设编程1 小时前
计算机毕业设计 基于YOLO改进算法的车辆特征识别系统设计与实现--lw
java·大数据·python·sql·算法
姜鱼问生1 小时前
Nginx gzip 压缩:一个配置让页面加载快 3 倍
后端·算法·架构
badhope1 小时前
Spring AI Alibaba停更:Java程序员的信任,还能被辜负几次?
java·spring
颜酱1 小时前
一栋商业大厦,讲清 InnoDB 的表空间、段、区和页
后端·mysql
const_qiu1 小时前
第一章 1.1-1.2:基础模型调用与 TypeScript 入门 —— Java 开发者的视角
java·javascript·typescript
码事漫谈1 小时前
1956 亿行数据该怎么存:金仓时序数据库的三个实测
后端
Wang's Blog1 小时前
Java 项目实战: 交友项目 - Dubbo 负载均衡策略与实战验证
java·dubbo·交友
Wx-bishekaifayuan2 小时前
springboot桂味美食分享系统40540-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游