Spring Boot 常见面试题解析
Spring Boot 常见面试题解析
核心概念
-
什么是 Spring Boot?
Spring Boot 是 Spring 生态系统中的一个框架,简化 Spring 应用程序的创建、配置和运行。它通过自动配置、起动器依赖和嵌入式服务器等特性,帮助开发者快速构建独立的、生产级别的 Spring 应用。
-
Spring Boot 的核心特性有哪些?
- 自动配置: Spring Boot 根据项目依赖和配置,自动提供默认配置,减少开发者手动配置的工作量。
- 起动器依赖: 起动器是一组预定义的依赖项,用于快速引入特定功能,例如 Web 开发、数据访问等。
- 嵌入式服务器: Spring Boot 内嵌了 Tomcat、Jetty 或 Undertow 等服务器,无需单独部署 Web 服务器。
- Actuator: 提供生产级别的监控和管理功能,例如健康检查、指标收集等。
配置管理
-
Spring Boot 的配置文件格式有哪些?
Spring Boot 支持
.properties
和.yaml
两种格式的配置文件,其中.yaml
格式更简洁易读。 -
如何自定义配置?
可以通过
application.properties
或application.yaml
文件自定义配置,也可以使用命令行参数或环境变量覆盖默认配置。 -
Spring Boot 的配置文件加载顺序是什么?
Spring Boot 配置文件按照以下顺序加载,后面的配置会覆盖前面的配置:
classpath:/default.properties
classpath:/application.properties
classpath:/application.yaml
file:./config/application.properties
file:./config/application.yaml
file:./application.properties
file:./application.yaml
数据访问
-
Spring Boot 如何集成 Spring Data JPA?
可以通过
spring-boot-starter-data-jpa
起动器依赖引入 Spring Data JPA,并配置数据源和实体扫描路径即可。 -
Spring Boot 支持哪些数据库?
Spring Boot 支持所有主流的关系型数据库,例如 MySQL、PostgreSQL、Oracle 等,也支持 NoSQL 数据库,例如 MongoDB、Redis 等。
Web 开发
-
Spring Boot 如何创建 RESTful API?
可以使用
spring-boot-starter-web
起动器依赖和@RestController
注解创建 RESTful API,并使用@GetMapping
、@PostMapping
等注解定义请求映射。 -
Spring Boot 如何处理异常?
可以使用
@ControllerAdvice
注解和@ExceptionHandler
注解定义全局异常处理器,也可以自定义异常页面。
测试
-
Spring Boot 如何进行单元测试?
可以使用
spring-boot-starter-test
起动器依赖和@SpringBootTest
注解进行单元测试,并使用MockMvc
或TestRestTemplate
进行模拟请求。
安全
-
Spring Boot 如何实现 Spring Security?
可以使用
spring-boot-starter-security
起动器依赖引入 Spring Security,并配置安全策略,例如身份验证、授权等。
部署
-
如何将 Spring Boot 应用打包成可执行 JAR 文件?
可以使用 Maven 或 Gradle 的
spring-boot-maven-plugin
或spring-boot-gradle-plugin
插件将 Spring Boot 应用打包成可执行 JAR 文件。
其他
-
Spring Boot 和 Spring MVC 的区别是什么?
Spring MVC 是 Spring Framework 中的一个模块,用于构建 Web 应用程序。Spring Boot 建立在 Spring MVC 的基础之上,并提供了自动配置、起动器依赖等特性,简化了 Web 应用程序的开发。
-
Spring Boot 的优点和缺点是什么?
优点:
- 快速开发:自动配置、起动器依赖等特性简化了开发流程。
- 易于部署:嵌入式服务器无需单独部署 Web 服务器。
- 易于测试:提供了测试工具和框架。
- 生产就绪:提供了 Actuator 等生产级别的监控和管理功能。
缺点:
- 学习曲线:需要学习 Spring Boot 的特定概念和配置。
- 版本兼容性:不同版本的 Spring Boot 可能存在兼容性问题。
注意: 以上只是一些常见的 Spring Boot 面试题,实际面试中可能会根据职位和公司情况有所不同。建议结合自身情况和目标职位进行准备。
评论区