先从SpringBoot的主配置类开始看:
该配置类上贴上了SpringBootApplication注解,在运行方法上打上一个断点,我们通过debug来观察程序运行的流程,最终可以发现他的核心是在SpringApplication类的第163行,
这段代码的作用是读取我们传过来的配置类,根据传过来的配置类,我们读取配置类上贴的注解(@SpringBootApplication)
我们点击这个注解过去看看,可以发现:
这个注解上面还贴有@EnableAutoConfigration这个注解,他也会将这个注解进行解析.
再点击@EnableAutoConfigration注解过去看:
发现该注解上贴上了import注解,该注解引入了EnableAutoConfigurationImportSelector配置类.
继续跟踪EnableAutoConfigurationImportSelector类,
发现该类是继承AutoConfigurationImportSelector
查看AutoConfigurationImportSelector类的方法,调用了loadFactoryNames方法去读取我们jar包中的META-INF/spring.factories文件.
spring.factories配置了我们自动装配的类,再根据条件进行装配.
第一次写..可能有点不足的地方,希望能提出来,大家一起进步..