Spring Boot 面试问题
这是为初学者和初级开发者(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)