SpringBoot自动配置原理


前置知识:@Import注解的使用方法
参考文章

前言

SpringBoot自动配置是一个比较重要的知识点,经常出现在面试题中,而且以后我们阅读源码也需要了解自动配置相关的知识,本文就来带着大家一步一步的观看源码,理清自动配置的过程


在这里插入图片描述

一、什么是自动配置

在SpringBoot项目中,我们引入的一些依赖,比如:SpringMVC的依赖,Mybatis的依赖,但是我们并没去向开发时使用@Autowired注入Bean对象,这是为什么呢?是因为SpringBoot帮助我们自动注入了,我们就来探究一下SpringBoot是如何帮助我们注入的。

二、查看源码

1.从@SpringBootApplicaton注解开始 ,这个注解大家应该很熟悉,是SpringBoot项目启动类的注解
在这里插入图片描述
2.进入@SpringBootApplication注解
在这里插入图片描述

我们可以看到@SpringBoot注解是由三个注解组合而成,
1.@SpringBootConfiguretion:SpringBoot配置类,不用关注
2.@EnableAutoConfiguretion:SpringBoot自动配置,重点关注
3.@ComponentScan:包扫描:不用关注
我们需要关注的注解从名字就可以看出:开启自动配置,然后我们再次进入这个注解

3.进入@EnableAutoConfiguration注解
在这里插入图片描述

这个注解主要由两个注解组成
@AutoConfiguratioinPackage:不用关注
@Import:重点关注
我们关注一下Import导入的类的名字是:XXXImportSelector,这个类实现了ImportSelector接口,需要重写selectImports()方法,这个方法返回一个数组,在数组里的全类名会自动导入

在这里插入图片描述

然后我们再继续追踪这个方法

在这里插入图片描述

那么我们就去自动依赖里找到这个文件
我这里给了两个依赖,一个是2.6版本,一个是3版本,这里需要说一下,在2.7以前的版本是spring.factories文件,3版本以上是后缀名为import文件,2.7到3之间是两种都支持

在这里插入图片描述

我们进入这个文件,可以看到里面配置的就是全类名

在这里插入图片描述

总结

自动配置原理总结起来就是:
@SpringBootApplication注解组合了@EnableAutoConfiguration注解
@EnableAutoConfiguration注解又组合了Import注解,导入了一个实现类ImportSelector的类
经过层层调用找到了spring.factories或.import文件
然后根据配置条件(@Conditonal及其衍生注解)把满足的Bean注入IOC容器中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无技术,不人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值