Spring Boot面试题总结

69 阅读4分钟

🍓 简介:java系列技术分享(👉持续更新中...🔥)
🍓 初衷:一起学习、一起进步、坚持不懈
🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏
🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝

一、Spring Boot 面试题汇总

1.为什么要用SpringBoot

  1. 独立运行 Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
  2. 简化配置 spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。
  3. 自动配置 Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web的功能,无需其他配置。
  4. 应用监控 5.Spring Boot提供一系列端点可以监控服务及应用,做健康检测。

2.Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

  1. 启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
  • @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
  • @EnableAutoConfiguration:打开自动配置的功能
  • @ComponentScan:Spring组件扫描
  • 核心讲解在之前文章中有详细介绍Spring Boot自动装配原理:

3.运行Spring Boot有哪几种方法?

  1. 打包用命令或者放到容器中运行
  2. 用 Maven/Gradle 插件运行
  3. 直接执行 main 方法运行

4、Spring Boot 需要独立的容器运行吗?

  • 可以不需要,内置了 Tomcat/ Jetty 等容器。

5. Spring Boot中的监视器是什么?

Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为HTTP URL访问的REST端点来检查状态。

6. 如何使用Spring Boot实现异常处理?

Spring提供了一种使用ControllerAdvice处理异常的非常有用的方法。我们通过实现一个ControlerAdvice类,来处理控制器类抛出的所有异常。

7. 你如何理解Spring Boot中的starter?

  • starter可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring及其他技术,而不需要到处找示例代码和依赖包。
  • 如你想使用spring data redis访问Redis,只要加入spring-boot-starter-data-redis 启动器依赖就能使用了。starter包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。

8. springboot常用的starter有哪些?

  • spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
  • spring-boot-starter-data-jpa 数据库支持
  • spring-boot-starter-data-redis redis数据库支持
  • spring-boot-starter-data-solr solr支持
  • spring-boot-starter-data-elasticsearch (es支持)
  • spring-boot-starter-amqp(消息队列支持)
  • spring-boot-starter-data-mongodb (mongodb的支持)
  • mybatis-spring-boot-starter(mybatis的支持)
  • mybatis-plus-boot-starter(mybatis plus的支持)

9. Spring Boot提供了哪些核心功能?

  1. jar包方式运行 通过引入spring-boot-maven-plugin插件可以将springboot项目打包成一个可以直接运行的jar包,运行方式和常规jar包一样 java -jar xxx.jar ,启动后可以直接运行内嵌的web容器,根据具体引入的依赖来确定到底该启动哪种web容器。
  2. 使用了starter依赖 使用starter来封装依赖,简化项目引入相关依赖的复杂度
  3. 自动配置 springboot将spring4中的 @Condition注解发扬光大,根据特定的条件来创建相关的bean(如 classpath下存在某个或者是某些类时自动创建某些spring bean),自动完成相关框架的自动配置。

10.如何自定义Spring Boot应用程序的端口号?

  1. 在application.properties或者application.yml文件中添加server.port配置项指定端口
  2. 在启动spring boot项目的时候通过-Dserver.port参数指定项目的端口号

11.Spring Boot如何定义多套不同环境配置?

applcation.properties
application-dev.properties
application-test.properties
application-prod.properties

然后在applcation.properties/yml文件中指定当前的环境spring.profiles.active=test,这时候读取的就是 application-test.properties文件。

12. Spring Boot有哪几种读取配置的方式?

  1. @Value
  2. Environment接口
  3. @ConfigurationProperties来绑定变量

13.Spring Boot项目的自动化配置原理是什么?

核心讲解在之前文章中有详细介绍Spring Boot自动装配原理:

ds