Spring boot的自动装配原理

先从SpringBoot的主配置类开始看:

Spring boot的自动装配原理

该配置类上贴上了SpringBootApplication注解,在运行方法上打上一个断点,我们通过debug来观察程序运行的流程,最终可以发现他的核心是在SpringApplication类的第163行,

Spring boot的自动装配原理

Spring boot的自动装配原理

这段代码的作用是读取我们传过来的配置类,根据传过来的配置类,我们读取配置类上贴的注解(@SpringBootApplication)

Spring boot的自动装配原理

我们点击这个注解过去看看,可以发现:

Spring boot的自动装配原理

这个注解上面还贴有@EnableAutoConfigration这个注解,他也会将这个注解进行解析.

再点击@EnableAutoConfigration注解过去看:

Spring boot的自动装配原理

发现该注解上贴上了import注解,该注解引入了EnableAutoConfigurationImportSelector配置类.

继续跟踪EnableAutoConfigurationImportSelector类,

发现该类是继承AutoConfigurationImportSelector

Spring boot的自动装配原理

查看AutoConfigurationImportSelector类的方法,调用了loadFactoryNames方法去读取我们jar包中的META-INF/spring.factories文件.

Spring boot的自动装配原理

Spring boot的自动装配原理

spring.factories配置了我们自动装配的类,再根据条件进行装配.

第一次写..可能有点不足的地方,希望能提出来,大家一起进步..