- Springboot应用的启动类必须使用@SpringBootApplication注解标记
该注解包含了@ SpringbootConfiguration ,@EnableAutoConfiguration,和ComponentScan三个注解的功能 - 通过@SpringBootConfigurtaion引入了@EnableAutoConfiguration注解
@EnableAutoConfiguration 可以启动配置功能,只有加了该注解才会读取我们的配置类,然后进行启动 - @EnableAutoConfiguration 当中引入了@import注解
Spring容器启动时IOC容器会解析@import注解,在@import注解中引入了DeferredImportSelector延迟导入选择器(使SpringBoot的自动配置类在后面,方便我们扩展和覆盖),通过该注解可以读取所有组件类路径下的META-INFO/spring.factories文件,在这个文件中找到自动配置类,该文件都是以key-value形式进行书写,在该文件中找到所有EnableAutoConfiguration的key的类,然后进行过滤,过滤出所有AutoConfigurationClass类型的类,最后通过@Condtion排除无效的配置类,筛选出有效的自动配置类. - 组合所有自动配置类作为Spring容器的一个Bean,将所有需要加载的自动配置类组合成一个完整的应用程序上下文,并将其作为Spring容器的一个Bean从而实现自动装配
SpringBoot 自动装配原理
于 2024-08-30 06:58:21 首次发布