SpringBoot的自动配置的摸索
SpringBoot的自动配置的探讨笔记
SpringBoot是如何完成自动配置的,为何我的配置会生效?
首先我们打开Spring的主程序入口
主程序中就两句有用的,一个注解和run,我们进入注解
上面有一排注解,这个注解表示自动装配,进入注解
这个注解又导入了一个配置类,进入配置类
配置类中有一个方法加载了配置类,进入这个类中看见了一个常量标识了一个文件地址
还是在这个类中,该类读取了这个文件,并且存在Map中,通过for循环遍历添加到result中(其实我这边已经搞不大清楚了)
接下来打开常量对应的文件
可以看到其中记录了所有SpringBoot可以自动装配的配置类,随便打开一个
可以看见上文的注释中标识了注解的用处,每个配置类都被spring管理,每个配置类都会自动装配一个class,这个class中记录了默认装配的配置,我们打开
可以看见许多的默认配置和一些还没有被配置的属性,以及一个
@ConfigurationProperties注解,这个注解在使用yaml的自动配置中使用到了,表示读取该名字的配置,所以我们回到SpringBoot的配置文件application.yaml
输入server.自动补全中就弹出了很多的配置,仔细观察会发现这里面的配置和上面的配置类中的配置是一一对应的,因此得出了结论
SpringBoot在执行后会自动配置默认的配置,然后读取配置文件,根据注解将配置文件导入配置类,完成自动装配。
(萌新第一次跟着教程扒源码。哪里错了欢迎指出,轻喷)