面过上千场Java岗,有个规律几乎不变:面试官必问Spring Boot自动配置。这题看似简单,答深了直接定级。

先看调用链。@SpringBootApplication注解背后藏着@EnableAutoConfiguration,后者通过@Import把AutoConfigurationImportSelector拉进来。selectImports()方法接着调用SpringFactoriesLoader,去读META-INF/spring/目录下的AutoConfiguration.imports文件——这才是配置类加载的真正入口。

打开网易新闻 查看精彩图片

条件注解是第二层筛选。@ConditionalOnClass检查依赖是否存在,比如DataSource.class在类路径上才生效;@ConditionalOnMissingBean则让用户的自定义Bean优先,避免框架配置覆盖业务代码。这套机制把"约定优于配置"落到了代码层面。

打开网易新闻 查看精彩图片

面试想拿高分,关键在讲清SPI加载流程和条件注解的协作关系,而不是背概念。

打开网易新闻 查看精彩图片

更多:Java面试工具箱——40+开源工具,全部免费。