SpringBoot自动配置的源码解析

时间:2023-03-10 06:58:37
SpringBoot自动配置的源码解析

首先,写源码分析真的很花时间,所以希望大家转的时候也请注明一下,Thanks♪(・ω・)ノ

SpringBoot最大的好处就是对于很多框架都默认的配置,让我们开发的时候不必为了大一堆的配置文件头疼,关于Spring boot的配置类在哪里,怎么看,我在https://www.cnblogs.com/yangfeiORfeiyang/p/9356981.html这篇博客里已经写了,这里就不再赘述,我们就直接看看它是怎么注册这些配置的吧

首先,因为Spring boot我们点进@EnableAutoConfiguration这个注解

SpringBoot自动配置的源码解析

可以看到它在被扫描到后后自动加载一个类我们点进这个类看看

SpringBoot自动配置的源码解析

直接看下这个方法

AutoConfigurationMetadata autoConfigurationMetadata = AutoConfigurationMetadataLoader.loadMetadata(this.beanClassLoader);

SpringBoot自动配置的源码解析

可以看到,它将将一个文件里的内容读取为Properties,然后遍历使用类加载器进行加载,我们看看文件里是什么内容

SpringBoot自动配置的源码解析

这就是各个框架的配置类

SpringBoot自动配置的源码解析

在读取完成之后,它将Properties放进了内部类的属性里,我们再会到之前的类里

SpringBoot自动配置的源码解析

可以看到,在这里将配置的信息进行了一个过滤,将我们使用exclude排除掉的一些自动配置类给去掉,并返回了一个String数组

SpringBoot自动配置的源码解析


之后被遍历放到了这个缓存中

SpringBoot自动配置的源码解析