内容目录
这是为初学者和初级开发者(0-3年经验)准备的2024-2025版终极汇总清单——88个Spring Boot面试问题全集。

涵盖了TCS、Infosys、Cognizant、Accenture、Capgemini、Wipro、Deloitte、IBM、Mindtree、LTIMindtree、Tech Mahindra、HCL等公司提出的所有问题。
| 序号 | 问题 |
|---|---|
| 1 | 什么是 Spring Boot? |
| 2 | Spring Boot 相较于 Spring Framework 有哪些优势? |
| 3 | Spring Boot 中的自动配置是什么? |
| 4 | 什么是 Spring Boot Starters?列举一些重要的 starter。 |
| 5 | @SpringBootApplication 注解的作用是什么? |
| 6 | @SpringBootApplication 内部包含哪三个主要注解? |
| 7 | 解释 SpringBootApplication 的 main() 方法的作用。 |
| 8 | 什么是 application.properties 和 application.yml? |
| 9 | 如何在 Spring Boot 中更改默认端口? |
| 10 | application.properties 和 application.yml 之间的区别? |
| 11 | @RestController 注解是什么? |
| 12 | @Controller 和 @RestController 的区别? |
| 13 | 什么是 @RequestMapping? |
| 14 | @GetMapping、@PostMapping、@PutMapping、@DeleteMapping 是什么? |
| 15 | @PathVariable 和 @RequestParam 的区别? |
| 16 | 如何在 Spring Boot 中返回 JSON 响应? |
| 17 | 什么是 Spring Boot Actuator?如何启用它? |
| 18 | 列举一些重要的 Actuator 端点。 |
| 19 | 如何启用所有的 Actuator 端点? |
| 20 | @Component、@Service、@Repository 注解的用途? |
| 21 | 什么是依赖注入?Spring Boot 是如何实现的? |
| 22 | @Autowired 是什么?我们可以在哪里使用它? |
| 23 | @Component 和 @Bean 的区别? |
| 24 | @Configuration 注解是什么? |
| 25 | Spring Boot 中的 @Profile 是什么?如何使用? |
| 26 | 如何创建多个配置文件(dev、prod、test)? |
| 27 | 什么是 Spring Boot DevTools?它为什么有用? |
| 28 | @Entity 注解的用途是什么? |
| 29 | 什么是 JPA 和 Hibernate? |
| 30 | 什么是 Spring Data JPA? |
| 31 | spring-boot-starter-data-jpa 的作用是什么? |
| 32 | 如何使用 application.properties 连接数据库? |
| 33 | Spring Boot 中默认的嵌入式数据库是什么? |
| 34 | 列举你使用过的不同 Spring Boot Starters。 |
| 35 | 什么是 spring-boot-starter-web? |
| 36 | 什么是 spring-boot-starter-test?它包含哪些库? |
| 37 | @SpringBootTest 注解是什么? |
| 38 | @MockBean 的用途是什么? |
| 39 | 如何在 Spring Boot 中全局处理异常? |
| 40 | 什么是 @ControllerAdvice 和 @ExceptionHandler? |
| 41 | 如何在 Spring Boot 中创建自定义异常? |
| 42 | @ResponseStatus 和 @ExceptionHandler 的区别? |
| 43 | Spring Boot 中的日志记录是什么?如何更改日志级别? |
| 44 | Spring Boot 中默认的日志框架是什么? |
| 45 | 如何在 Spring Boot 中外部化配置? |
| 46 | 什么是 Spring Boot CLI? |
| 47 | 如何创建可执行 JAR? |
| 48 | Spring MVC 和 Spring Boot 的区别? |
| 49 | pom.xml 和 spring-boot-starter-parent 的作用是什么? |
| 50 | spring-boot-starter-parent 和导入 BOM 的区别? |
| 51 | 如何覆盖 spring-boot-starter-parent 的属性? |
| 52 | @Bean 与 @Component?何时使用哪个? |
| 53 | 什么是 @Qualifier?举例说明。 |
| 54 | @Primary 和 @Qualifier 的区别? |
| 55 | 分步解释 Spring Boot 的启动过程。 |
| 56 | 什么是嵌入式 Tomcat?为什么它是 Spring Boot 的默认选项? |
| 57 | 如何将嵌入式服务器更改为 Jetty 或 Undertow? |
| 58 | REST 中受检查异常和非受检查异常的区别? |
| 59 | 什么是 @ResponseEntity?为什么以及何时使用它? |
| 60 | 如何在 Spring Boot 中进行验证?(@Valid 与 @Validated) |
| 61 | application-dev.yml、application-prod.yml 是什么?Spring 如何选取它们? |
| 62 | 什么是 Spring Boot 优雅关机?如何启用? |
| 63 | @ConfigurationProperties 和 @Value 的区别? |
| 64 | Spring Boot 3 的主要变化有哪些?(Java 17, Jakarta EE 等) |
| 65 | javax.* 和 jakarta.* 包的区别? |
| 66 | @Component、@Service、@Repository、@Controller 之间的确切区别? |
| 67 | 为什么 @Repository 将受检查异常转换为非受检查异常? |
| 68 | 什么是 @Lazy 注解? |
| 69 | 构造器注入 vs 字段注入 vs Setter注入 —— Spring Boot 3 中推荐哪种? |
| 70 | application.yml 和 bootstrap.yml 的区别? |
| 71 | 如何保护 Spring Boot 应用程序?(至少 3 种方式) |
| 72 | 什么是 spring-boot-starter-security? |
| 73 | Spring Boot 3 中的 @EnableMethodSecurity 是什么? |
| 74 | 如何创建自定义自动配置? |
| 75 | spring.factories / spring-boot-autoconfigure-META-INF 的作用是什么? |
| 76 | Actuator + Micrometer + Prometheus + Grafana 是什么? |
| 77 | 如何创建自定义健康指示器? |
| 78 | /actuator/health 和 /actuator/info 的区别? |
| 79 | 如何从命令行运行特定 profile? |
| 80 | 什么是 @ConditionalOnMissingBean?举例说明? |
| 81 | 你能在不使用任何 starter 的情况下运行 Spring Boot 吗? |
| 82 | SpringApplication.run() 和 new SpringApplication().run() 的区别? |
| 83 | 如何禁用 Spring Boot 横幅?(3 种方式) |
| 84 | @EntityScan 和 @ComponentScan 的区别? |
| 85 | Spring Boot 如何支持响应式编程?(WebFlux 与 MVC) |
| 86 | 什么是 @EnableAutoConfiguration? |
| 87 | 如何禁用特定的自动配置? |
| 88 | 什么是 Spring Initializr?(start.spring.io) |

