001-Spring Boot是如何实现自动配置的?
Spring Boot 自动配置的核心就是@EnableAutoConfiguration 注解,它通过 @Import 引入AutoconfigurationImportselector , 这个类会去扫描 classpath 下所有jar 包里的 META-INF/spring.factories 文件,找出里面声明的自动配置类,然后根据条件注解决定哪些配置要加载。
整个流程是这样的: Spring Boot 启动时,@SpringBootApplication 里包含的 @EnableAutoConfiguration 生效,触发AutoConfigurationlmportSelector 去读取 spring.factories,拿到一堆候选配置类,然后逐个检查这些类上的@ConditionalOnClass、 @ConditionalOnMissingBean、 @ConditionalonProperty 这些条件注解,只有条件全部满足的配置类才会真正加载,往容器里注册Bean。
比如你引入了 spring-boot-starter-web,classpath 里就有了 Tomcat 和 Spring MVC 的类,这时候WebMvcAutoConfiguration 的 @ConditionalOnClass 条件就满足了,自动帮你配好 DispatcherServlet、 视图解析器这些组件,不用你手动写一行XML。