SpringBoot自动配置底层原理

①@SpringBootApplication实现自动配置
在这里插入图片描述
如上,SpringBoot实现自动配置是通过注解@SpringBootApplication实现的。而这个注解又是三个注解的复合注解
在这里插入图片描述
①SpringBootConfiguration
@SpringBootConfiguration实现了@Configuration注解,所以实际上这个注解的作用主要是为了标识主程序类是SpringBoot的核心配置类(配置类会作为组件注册进IOC容器中)
在这里插入图片描述
②@ComponentScan
作用是开启包扫描
③核心注解@@EnableAutoConfiguration
这个注解就是实现自动配置的核心
@EnableAutoConfigurations是注解@AutoConfigurationPackage和@Import的复合注解
在这里插入图片描述
@AutoConfigurationPackage的作用是将当前主程序所在的包及其所有子包下的所有组件都注册进IOC容器中
在这里插入图片描述
上述的这个功能因为@AutoConfigurationPackage实际上是实现了@Import注解,不过这个注解注册的不仅仅是一个组件,而是通过注解元数据获取到主程序所在的包名,通过包名将主程序及其子包下的组件进行注册
而真正进行自动配置的是@EnableAutoConfigurations实现的第二个注解@Import,这个注解的作用是将所有场景(记住是所有场景)的127个自动配置类都加载进来,但加载进来的自动配置类不一定都能够在IOC容器中注册
在这里插入图片描述

加载进来所有的127个自动配置类后,会利用条件装配@Conditional及其子注解来进行有选择将需要的组件注册进IOC容器
如下Aop的自动配置类:
在这里插入图片描述
虽然我们127个场景的所有自动配置启动的时候默认全部加载。xxxxAutoConfiguration
按照条件装配规则(@Conditional),最终会按需配置。

在这里插入图片描述

上述内容来源于尚硅谷,如有侵权联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值