15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?

我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的知识和面试经验,为将来进入更好的公司做好充分的准备!

想让面试官在短短的几十分钟内认可你的能力?想在最短的时间内收获 Java 技术栈最核心的知识点?想要更全面更深入的了解 Java 技术?这篇文章给你想要的所有答案。

本 Chat 你将会获得以下知识:

  • Java、Jvm 最常见面试题解析;
  • Spring、Spring MVC、MyBatis、Hibernate 面试题解析;
  • MySQL、Redis 面试题解析;
  • RabbitMQ、Kafka、Zookeeper 面试解析;
  • 微服务 Spring Boot、Spring Cloud 面试解析。

01 Spring Boot 的配置文件格式

application.properties 或者是 application.yml,它们的区别主要是书写格式不同。

(1)properties

springboot.user.name = testname

(2)yml

springboot:user:name: testname

另外,.properties 格式文件的属性是无序的,.yml 格式文件的属性是有序的,但它不支持@PropertySource 注解导入配置。

分享一下小编自己整理的 35 个 Spring Boot 知识点,有需要的朋友可以点击链接加入:【Java 架构度寒冬】免费领取哦~15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?_第1张图片

02 Spring Boot 的核心注解

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring 组件扫描。

03 开启 Spring Boot 特性的方式

(1)继承 spring-boot-starter-parent 项目

(2)导入 spring-boot-dependencies 项目依赖

04 运行 Spring Boot 的方式

(1)直接执行 main 方法运行

(2)用 Maven / Gradle 插件运行

(3)打成 jar 包,通过 java -jar 命令直接运行

05 Spring Boot 读取配置的方式

Spring Boot 可以通过@PropertySource,@Value,@Environment,@ConfigurationProperties 来绑定变量。

06 Spring Boot 中的监视器

Spring Boot actuator 是 Spring 启动框架中的重要功能之一。Spring Boot 监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。例如创建了什么 bean、控制器中的映射、CPU 使用情况等等。然后可以将自动收集和审计健康状况(health)以及指标(metric)到您的应用程序中。

07 Spring Boot 自动配置的原理

在 Spring 程序 main 方法中 添加@SpringBootApplication 或者@EnableAutoConfiguration。会自动去 maven 中读取每个 starter 中的 spring.factories 文件,该文件里配置了所有需要被创建 spring 容器中的 bean。

Spring Boot 在启动时扫描项目所依赖的 JAR 包,寻找包含 spring.factories 文件的 JAR

根据 spring.factories 配置加载 AutoConfigure 类

根据@Conditional 注解的条件,进行自动配置并将 Bean 注入 Spring Context

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

Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法。 我们通过实现一个

ControlerAdvice 类,来处理控制器类抛出的所有异常。

09 我们如何监视所有 Spring Boot 微服务?

Spring Boot 提供监视器端点以监控各个微服务的度量。这些端点对于获取有关应用程序的

信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。但

是,使用监视器的一个主要缺点或困难是,我们必须单独打开应用程序的知识点以了解其

状态或健康状况。想象一下涉及 50 个应用程序的微服务,管理员将不得不击中所有 50 个

应用程序的执行终端。

10 使用配置文件通过 Spring Boot 配置特定环境的配置

比方说现在有两个配置文件 application-dev.properties 和 application-prod.properties。在 application.properties 中使用 spring.profiles.active=prod 即可加载 application-prod.properties 配置文件的配置。

11 spring-boot-maven-plugin

spring-boot-maven-plugin 提供了一些像 jar 一样打包或者运行应用程序的命令。

run:运行你的 Spring Boot 应用程序。

repackage:重新打包你的 jar 包或者是 war 包使其可执行

start 和 stop:管理 Spring Boot 应用程序的生命周期,也可以说是为了集成测试。

build-info:生成执行器可以使用的构造信息。

12 如何禁用一个特定自动配置类

@SpringBootApplication(exclude= {Order.class})

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

@EnableAutoConfiguration(excludeName={Foo.class})

13 什么是 Swagger?你用 Spring Boot 实现了它吗?

Swagger 广泛用于可视化 API,使用 Swagger UI 为前端开发人员提供在线沙箱。Swagger 是

用于生成 RESTful Web 服务的可视化表示的工具,规范和完整框架实现。它使文档能够以

与服务器相同的速度更新。当通过 Swagger 正确定义时,消费者可以使用最少量的实现逻

辑来理解远程服务并与其进行交互。因此,Swagger 消除了调用服务时的猜测。

14 Spring Boot 工厂模式的加载

Spring Framework 内部使用一种工厂加载机制(Factory Loading Mechanism)。这种机制使用 SpringFactoriesLoader 完成,SpringFactoriesLoader 使用 loadFactories 方法加载并实例化从 META-INF 目录里的 spring.factories 文件出来的工厂,这些 spring.factories 文件都是从 classpath 里的 jar 包里找出来的。

15 如何实现 Spring Boot 应用程序的安全性?

为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展 WebSecurityConfigurerAdapter 并覆盖其方法。

Spring Boot 是微服务中最好的 Java 框架,因此除了这15 个 Spring Boot 面试题总结以外,小编还整理了35 个常见的 Spring Boot 知识点以及分享一些 Spring Boot 的学习书籍,希望能够祝你一臂之力,离成为一名 Spring Boot 的专家更近一步!

有需要的朋友们,关注一下这些资料的免费领取方式:点击链接加入:【Java 架构度寒冬】免费领取哦~

(1)35 个 Spring Boot 知识点15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?_第2张图片

(2)Spring Boot 实战15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?_第3张图片

(3)Spring Boot 学习导图15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?_第4张图片

(4)SpringBoot 揭秘:快速构建微服务体系15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?_第5张图片再分享一些 Java 架构学习资料及面试资料15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?_第6张图片


本文首发于 GitChat,未经授权不得转载,转载需与 GitChat 联系。

阅读全文: http://gitbook.cn/gitchat/activity/5d81d97a1260b04856f5f2c0

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

你可能感兴趣的:(15 个 Spring Boot 面试题总结(题目+解析),你能全部答对吗?)