Spring Boot 面试题 30 道

笔记/Java/面试专栏/Spring Boot 面试题 30 道

整理自 Spring Boot 面试题 30 道。详细原理见下方 Spring Boot 基础专题四篇。

相关学习笔记#

专题笔记
Spring 全家桶Spring 全家桶
Spring 核心Spring 面试题精选
入门与启动Spring Boot 入门与启动
Spring CloudSpring Cloud 面试题 49 道
配置与多环境Spring Boot 配置与多环境
自动配置与 StarterSpring Boot 自动配置与 Starter
Web、运维与测试Spring Boot Web、运维与测试

1. 什么是 Spring Boot#

在 Spring 之上快速构建独立、生产级应用的框架,最少配置即可运行(内嵌容器、java -jar)。

2. Spring Boot 的特征#

内嵌 Tomcat/Jetty/Undertow;Starter 依赖;自动配置;Actuator 监控;无 XML;外部化配置。

3. 如何快速构建 Spring Boot 项目#

start.spring.io、IDE(IDEA/STS)、Spring Boot CLI。

4. 启动类注解?由哪些注解组成#

@SpringBootApplication = @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan。可 exclude 关闭某项自动配置。

5. 什么是 YAML#

可读性高的数据序列化格式,比 properties 更有层次结构。

6. Spring Boot 支持的配置文件格式#

propertiesyml/yaml

7. Spring Boot 启动方式#

main 方法;java -jar;Maven/Gradle 插件。

8. Spring Boot 需要独立容器吗#

不需要,内嵌 Web 容器。

9. Spring Boot 配置途径(优先级从高到低)#

命令行 → JNDI → JVM 系统属性 → 环境变量 → random.* → jar 外配置 → jar 内配置 → @PropertySource → 默认。

10. application 文件可放位置与优先级#

./config/ > 运行目录 > classpath config/ > classpath 根;可 --spring.config.location 指定。

11. Spring Boot 自动配置原理#

@EnableAutoConfiguration → 读取 META-INF/spring.factories(或 Boot 3 的 imports 文件)中的自动配置类,按 @Conditional* 条件注册 Bean。

12. 热部署方式#

spring-boot-devtools、Spring Loaded、JRebel、模板热加载。

13. bootstrap.yml 和 application.yml#

bootstrap.yml 优先,常用于配置中心连接等引导配置。

14. 如何修改端口号#

server.port(yml/properties)、--server.port -Dserver.port

15. 开启 Spring Boot 特性的方式#

继承 spring-boot-starter-parent 或导入 spring-boot-dependencies BOM。

16. 如何兼容 Spring 项目#

@ImportResource("classpath:spring.xml") 引入原有 XML 配置。

17. Spring Boot 配置监控#

引入 Actuatorspring-boot-starter-actuator),暴露健康、指标等端点。

18. 获得 Bean 装配报告访问哪个端点#

/actuator/beans(2.x 后多在 /actuator 前缀下)。

19. 关闭应用程序访问哪个端点#

/actuator/shutdown默认关闭,需 management.endpoint.shutdown.enabled=true)。

20. 查看发布应用信息访问哪个端点#

/actuator/info

21. 针对请求访问的组合注解#

@GetMapping@PostMapping@PutMapping@DeleteMapping@PatchMapping

22. Spring Boot 中的 starter#

把功能相关依赖与默认配置打包,简化依赖管理与版本冲突。

23. Spring Boot 集成 Mybatis#

mybatis-spring-boot-starter + 数据源与 mapper-locations 配置。

24. 什么是 Spring Profiles#

按环境(dev/test/prod)注册不同 Bean 或加载不同配置,实现多环境隔离。

25. 不同环境的配置文件#

application.properties + application-{profile}.properties/yml,如 application-dev.yml

26. 如何激活某个环境的配置#

spring.profiles.active=dev(yml/properties)或启动参数 --spring.profiles.active=dev

27. 编写测试用例的注解#

@SpringBootTest(集成测试);还可配合 @WebMvcTest@DataJpaTest 等切片测试。

28. Spring Boot 异常处理相关注解#

@ControllerAdvice + @ExceptionHandler 全局处理;REST 项目常用 @RestControllerAdvice

29. Spring Boot 1.x 和 2.x 区别#

基于 Spring 5 / JDK 8+;配置项变更;Actuator 变化;中文配置可直接读取;依赖插件版本提高等。(3.x 需 JDK 17+)

30. Spring Boot 读取配置相关注解#

@Value@ConfigurationProperties@PropertySourceEnvironment

文章目录

文章目录