注:阅读本篇前,须先阅读我的另一篇博客
springboot run方法源码(一)-初始化及第三步中第一章“初始化initialize()”,需要了解loadFactoryNames()方法的原理。
因为在网上看到了比较好的介绍文章,因此就不重复劳动了,传送门:
Spring Boot面试杀手锏————自动配置原理
也可以看看视频:https://www.bilibili.com/video/BV1Et411Y7tQ?p=18
总结:
顺序:@EnableAutoConfiguration -> spring.factories -> @EnableConfigurationProperties -> @Conditional
Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的对应的所有自动配置类,并解析存放到spring容器中,这些自动配置类会根据条件配置大量的组件,同时,因为在配置组件时会从Properties类中获取属性(@EnableConfigurationProperties),所以我们可以在配置文件中指定这些属性的值,另外,需要注意不是所有的自动配置类都会生效,需要满足特定条件才会生效(@Conditional)。