Spring Boot 面试核心笔记
一、Spring Boot 核心思想必问✅ 1. 什么是 Spring Boot简化 Spring 开发的框架核心作用自动配置Auto Configuration起步依赖Starter内嵌服务器Tomcat✅ 2. 核心思想3句话背下来约定大于配置开箱即用自动装配二、自动配置原理面试重点✅ 1. 启动入口SpringBootApplicationpublic class MainApplication {public static void main(String[] args) {SpringApplication.run(MainApplication.class, args);}}✅ 2. SpringBootApplication 组成SpringBootConfigurationEnableAutoConfiguration // ⭐核心ComponentScan✅ 3. 自动装配核心流程必会 核心注解EnableAutoConfiguration底层做了什么加载配置类扫描META-INF/spring.factoriesSpring Boot 2或META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.importsSpring Boot 3加载所有自动配置类✅ 4. 条件注解重点 Spring Boot 不会乱加载是“按需加载”常见ConditionalOnClass // 类存在才加载ConditionalOnMissingBean // 没有 Bean 才创建ConditionalOnProperty // 配置存在才加载 面试一句话自动配置 SPI 条件注解三、Starter 启动器常考✅ 1. 什么是 Starter 一组依赖的集合开箱即用例如spring-boot-starter-webspring-boot-starter-data-jpa✅ 2. 原理 本质就是帮你引入依赖自动配置类✅ 3. 自定义 Starter进阶步骤创建 starter 模块写自动配置类写spring.factories/AutoConfiguration.imports使用条件注解控制加载四、配置文件高频✅ 1. 常见配置文件application.propertiesapplication.yml推荐✅ 2. YAML 示例server:port: 8080spring:datasource:url: jdbc:mysql://localhost:3306/test✅ 3. 读取配置方式✔ ValueValue(${server.port})private int port;✔ ConfigurationProperties推荐ConfigurationProperties(prefix user)Componentpublic class UserConfig {private String name;} 优点支持批量绑定结构清晰五、常用注解必背✅ Controller 层RestControllerRequestMapping(/user)✅ 参数接收注解作用RequestParam接收 URL 参数PathVariable接收路径参数RequestBody接收 JSON✅ Bean 管理ComponentServiceRepositoryController✅ 注入AutowiredResource 推荐优先使用构造器注入面试加分六、Spring Boot 内嵌服务器必问✅ 默认服务器 内嵌Tomcat✅ 优势不需要部署 WAR直接main启动简化运维✅ 如何切换服务器 排除 Tomcat引入JettyUndertow七、Spring Boot 启动流程高频✅ 核心流程精简版创建 SpringApplication加载配置类启动容器ApplicationContext执行自动配置启动内嵌 Tomcat✅ 面试一句话总结Spring Boot 启动 创建容器 自动装配 启动 Web 服务器八、Spring Boot 常见面试问题高频❓1. Spring Boot 和 Spring 的区别SpringSpring Boot配置复杂自动配置需要 XML基本不用手动整合开箱即用❓2. 自动装配是怎么实现的 回答模板通过 EnableAutoConfiguration SPI 条件注解实现按需加载配置类❓3. 如何自定义配置 答application.ymlConfigurationPropertiesValue❓4. Spring Boot 为什么启动快 关键点自动配置减少开发时间内嵌容器按需加载条件注解❓5. 如何排查自动配置 常用debugtrue 启动日志会显示哪些自动配置生效