Spring Boot 面试题详解
在 Java 开发领域,Spring Boot 是一个非常流行的框架,它提供了简洁的配置方式和自动化配置功能,简化了开发者的工作。然而,在面试中,很多开发者对 Spring Boot 的理解仅停留在简单的使用阶段,很多东西都不清楚。本文总结了 20 道顶尖的 Spring Boot 面试题,旨在帮助开发者更好地理解 Spring Boot。
1. 什么是 Spring Boot?
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
2. 为什么要用 Spring Boot?
Spring Boot 优点非常多,如:独立运行、简化配置、自动配置、无代码生成和 XML 配置、应用监控、上手容易等。因此,在开发中选择使用 Spring Boot 是非常明智的。
3. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。application 配置文件主要用于 Spring Boot 项目的自动化配置,而 bootstrap 配置文件有以下几个应用场景:使用 Spring Cloud Config 配置中心时,需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;一些固定的不能被覆盖的属性;一些加密/解密的场景。
4. Spring Boot 的配置文件有哪几种格式?它们有什么区别?
Spring Boot 的配置文件有两种格式:.properties 和 .yml。它们的区别主要是书写格式不同。.properties 格式使用键值对来配置,而 .yml 格式使用树形结构来配置。另外,.yml 格式不支持 @PropertySource 注解导入配置。
5. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
Spring Boot 的核心注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:@SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan。
6. 开启 Spring Boot 特性有哪几种方式?
开启 Spring Boot 特性有两种方式:继承 spring-boot-starter-parent 项目和导入 spring-boot-dependencies 项目依赖。
7. Spring Boot 需要独立的容器运行吗?
不需要,Spring Boot 内置了 Tomcat/ Jetty 等容器。
8. 运行 Spring Boot 有哪几种方式?
运行 Spring Boot 有三种方式:打包用命令或者放到容器中运行、用 Maven/ Gradle 插件运行、直接执行 main 方法运行。
9. Spring Boot 自动配置原理是什么?
Spring Boot 自动配置原理是基于 @EnableAutoConfiguration、@Configuration 和 @ConditionalOnClass 等注解,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。
10. Spring Boot 的目录结构是怎样的?
Spring Boot 的目录结构是使用 Maven 项目结构,通常包括 cn.javastack 包下面的 Application.java 文件、customer 包下面的 Customer.java、CustomerController.java 和 CustomerService.java 文件等。
本文总结了 20 道顶尖的 Spring Boot 面试题,旨在帮助开发者更好地理解 Spring Boot 的核心概念和应用场景。