SpringBoot入门(4):自动配置原理

超详细的自动配置原理

1、主程序入口的注释

@SpringBootApplication:标志主程序入口,SpringBoot启动时候加载主配置类
在这里插入图片描述

2、@SpringBootApplication中开启的功能

点进@SpringBootApplication源码,@EnableAutoConfiguration开启自动配置功能,向Spring容器自动导入需要的组件
在这里插入图片描述

3、@EnableAutoConfiguration开启的功能

点进@EnableAutoConfiguration,
(1)通过@Import({EnableAutoConfigurationImportSelector.class})选择器选择组件。
(2)@AutoConfigurationPackage讲主程序类所在的包及下面的子包中的组件加入Spring容器中
在这里插入图片描述

4、EnableAutoConfigurationImportSelector开启的功能

进去EnableAutoConfigurationImportSelector源码,发现继承父类AutoConfigurationImportSelector
在这里插入图片描述

5、AutoConfigurationImportSelector中的方法

AutoConfigurationImportSelector中有一个方法
public String[] selectImports(AnnotationMetadata annotationMetadata)返回一个字符串
在这里插入图片描述

方法中调用了一个方法List configurations = this.getCandidateConfigurations(annotationMetadata, attributes);获取候选的配置并返回configurations
在这里插入图片描述

6、getCandidateConfigurations()源码中调用的方法

调用SpringFactoriesLoader.loadFactoryNames()方法,扫描所有jar包类路径下的META-INF/spring.factories,把扫描到的文件的内容包装成properties对象,从propertie中或取到的EnableAutoConfiguration.class类对应的值,然后把他们加入到容器中。
在这里插入图片描述

7、SpringFactoriesLoader.loadFactoryNames()中调用的方法

通过classLoader.getResources(“META-INF/spring.factories”)获取资源并逐层返回
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

coder鹏鹏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值