2022最新SpringBoot⾯试题(⼀)
2022 最新 Spring Boot ⾯试题
1、什么是 Spring Boot?
多年来, 随着新功能的增加, spring 变得越来越复杂。 只需访问
Spring Boot 是解决这个问题的⽅法。 Spring Boot 已经建⽴在现有 spring 框架 之上 。 使⽤ spring 启动 , 我们避免了之前我们必须做的所有样板代码和配置 。 因 此, Spring Boot 可以帮助我们以最少的⼯作量, 更加健壮地使⽤现有的 Spring 功能。
2、Spring Boot 有哪些优点?
Spring Boot 的优点有:
1、 减少开发, 测试时间和努⼒。
2、 使⽤ JavaConfig 有助于避免使⽤ XML。
3、 避免⼤量的 Maven 导⼊和各种版本冲突。
4、 提供意见发展⽅法。
5、 通过提供默认值快速开始开发。
6、 没有单独的 Web 服务器需要。 这意味着你不再需要启动 Tomcat, Glassfish 或其他任何东西。
7、需要更少的配置 因为没有 l ⽂件 。只需添加⽤@ Configuration 注释 的类 ,然 后添加⽤
@Bean 注释的⽅法 ,Spring 将⾃动加载对象并像以前⼀样对其 进⾏管理 。您甚⾄可以将 @Autowired 添加到 bean ⽅法中,以使 Spring ⾃动装 ⼊需要的依赖关系中。
8、基于环境的配置 使⽤这些属性 ,您可以将您正在使⽤的环境传递到应⽤程序 :
-Dspring.profiles.active = {enviornment}。 在加载主应⽤程序属性⽂件后,
Spring 将在( application{environment} .properties)中加载后续的应⽤程序属 性⽂件。
3、什么是 JavaConfig?
Spring JavaConfig 是 Spring 社区的产品, 它提供了配置 Spring IoC 容器的纯
Java ⽅法。 因此它有助于避免使⽤ XML 配置。 使⽤ JavaConfig 的优点在于:
1、 ⾯向对象的配置。 由于配置被定义为 JavaConfig 中的类, 因此⽤户可以充分 利⽤ Java 中的⾯向对象功能。 ⼀个配置类可以继承另⼀个, 重写它的 @Bean ⽅ 法等。
2、减少或消除 XML 配置 。基于依赖注⼊原则的外化配置的好处已被证明 。但是 , 许多开发⼈员不希望在 XML 和 Java 之间来回切换。JavaConfig 为开发⼈员提供 了⼀种纯 Java ⽅法来配置 与 XML
配置概念相似 的 Spring 容器 。从 技术⾓度来讲 , 只使⽤JavaConfig 配置类来配置容器是可⾏的, 但实际上很多⼈认为 将
JavaConfig 与 XML 混合匹配是理想的。
3、 类型安全和重构友好。 JavaConfig 提供了⼀种类型安全的⽅法来配置 Spring 容器 。由于 Java 5.0 对泛型的⽀持 ,现在可以按类型⽽不是按名称检索 bean,不 需要任何强制转换或基于字符串的查。
4、如何重新加载 Spring Boot 上的更改,⽽⽆需重新启动服务器?
这可以使⽤ DEV ⼯具来实现。 通过这种依赖关系, 您可以节省任何更改, 嵌⼊式 tomcat 将重新启动 。Spring Boot 有⼀个开发⼯具(DevTools)模块 ,它有助于 提⾼开发⼈员的⽣产⼒。 Java 开发⼈员⾯临的⼀个主要挑战是将⽂件更改⾃动部 署到服务器并⾃动重启服务器。 开发⼈员可以重新加载 Spring Boot 上的更改, ⽽⽆需重新启动服务器 。这将消除每次⼿动部署更改的需要。Spring Boot 在发布 它的第⼀个版本时没有这个功能 。这是开发⼈员最需要的功能 。DevTools 模块完 全满⾜开发⼈员的需求 。该模块将在⽣产环境中被禁⽤。它还提供 H2 数据库控制 台以更好地测试应⽤程序。
5、Spring Boot 中的监视器是什么?
Spring boot actuator 是 spring 启动框架中的重要功能之⼀。 Spring boot 监视 器可帮助您访问⽣产环境中正在运⾏的应⽤程序的当前状态。 有⼏个指标必须在 ⽣产环境中进⾏检查和监控。 即使⼀些外部应⽤程序可能正在使⽤这些服务来向 相关⼈员触发警报消息。 监视器模块公开了⼀组可直接作为 HTTP URL 访问 的 REST 端点来检查状态。
6、如何在 Spring Boot 中禁⽤ Actuator 端点安全性?
默认情况下,所有敏感的 HTTP 端点都是安全的,只有具有 ACTUATOR ⾓⾊的⽤ 户才能访问它们 。安 全性是使⽤标准的HttpServletRequest.isUserInRole ⽅法实 施的。 我们可以使⽤
来禁⽤安全性。 只有在执⾏机构端点在防⽕墙后访问时, 才建议禁⽤安全性。
7、如何在⾃定义端⼝上运⾏ Spring Boot 应⽤程序?
为了在⾃定义端⼝上运⾏ Spring Boot 应⽤程序, 您可以 在 application.properties 中指定端⼝。
server.port = 8090
8、什么是 YAML?
YAML 是⼀种⼈类可读的数据序列化语⾔。 它通常⽤于配置⽂件。
与属性⽂件相⽐ ,如 果我们想要在配置⽂件中添加复杂的属性 ,YAML ⽂件就更加 结构化, ⽽且更少混淆。 可以看出 YAML 具有分层配置数据。
9、如何实现 Spring Boot 应⽤程序的安全性?
为了实现 Spring Boot 的安全性, 我们使⽤ spring-boot-starter-security 依赖 项, 并且必须添加安全配置。 它只需要很少的代码。配置类将必须扩 展
WebSecurityConfigurerAdapter 并覆盖其⽅法。
10、如何集成 Spring Boot 和 ActiveMQ?
对于集成 Spring Boot 和 ActiveMQ, 我们使⽤
依赖关系。 它只需要很少的配置, 并且不需要样板代码。
11、如何使⽤ Spring Boot 实现分页和排序?
使⽤ Spring Boot 实现分页⾮常简单。 使⽤ Spring Data-JPA 可以实现将可分页 的
传递给存储库⽅法。
12、什么是 Swagger?你⽤ Spring Boot 实现了它吗?
springboot aopSwagger ⼴泛⽤于可视化 API,使⽤ Swagger UI 为前端开发⼈员提供在线沙箱 。 Swagger 是⽤于⽣成 RESTful Web 服务的可视化表⽰的⼯具 ,规 范和完整框架实 现。它使⽂档能够以与服务器相同的速度更新 。当通过 Swagger 正确定义时 ,消 费者可以使⽤最少量的实现逻辑来理解远程服务并与其进⾏交互 。因 此 ,Swagger 消除了调⽤服务时的猜测。
13、什么是 Spring Profiles?
Spring Profiles 允许⽤户根据配置⽂件( dev,test,prod 等 )来注册 bean。因 此,当应⽤程序在开发中运⾏时 ,只有某些 bean 可以加载 ,⽽在 PRODUCTION 中, 某些其他 bean 可以加载。 假设我们的要求是 Swagger ⽂档仅适⽤于 QA 环 境,并且禁⽤所有其他⽂档 。这可以使⽤配置⽂件来完成 。Spring Boot 使得使⽤ 配置⽂件⾮常简单。
14、什么是 Spring Batch?
Spring Boot Batch 提供可重⽤的函数 ,这些函数在处理⼤量记录时⾮常重要 ,包 括⽇志/跟踪, 事务管理, 作业处理统计信息, 作业重新启动, 跳过和资源管理。 它还提供了更先进的技术服务和功
能, 通过优化和分区技术, 可以实现极⾼批量 和⾼性能批处理作业。 简单以及复杂的⼤批量批处理作业可以⾼度可扩展的⽅式 利⽤框架处理重要⼤量的信息。
15、什么是 FreeMarker 模板?
FreeMarker 是⼀个基于 Java 的模板引擎 ,最 初专注于使⽤ MVC 软件架构进⾏动
态⽹页⽣成 。使 ⽤ Freemarker 的主要优点是表⽰层和业务层的完全分离 。程序员 可以处理应⽤程序代码, ⽽设计⼈员可以处理 html 页⾯设计。 最后使 ⽤
freemarker 可以将这些结合起来, 给出最终的输出页⾯。
16、如何使⽤ Spring Boot 实现异常处理?
Spring 提供了⼀种使⽤ ControllerAdvice 处理异常的⾮常有⽤的⽅法。 我们通 过实现⼀个 ControlerAdvice 类, 来处理控制器类抛出的所有异常。
17、您使⽤了哪些 starter maven 依赖项?
使⽤了下⾯的⼀些依赖项
这有助于增加更少的依赖关系, 并减少版本的冲突。
18、什么是 CSRF 攻击?
CSRF 代表跨站请求伪造。 这是⼀种攻击, 迫使最终⽤户在当前通过⾝份验证的 Web 应⽤程序上执⾏不需要的操作。 CSRF 攻击专门针对状态改变请求, ⽽不是 数据窃取, 因为攻击者⽆法查看对伪造请求的响应。
19、什么是 WebSockets?
WebSocket 是⼀种计算机通信协议, 通过单个 TCP 连接提供全双⼯通信信道。
1、 WebSocket 是双向的 -使⽤ WebSocket 客户端或服务器可以发起消息发送 。
2、 WebSocket 是全双⼯的 -客户端和服务器通信是相互独⽴的。
3、单 个 TCP 连接 -初始连接使⽤ HTTP,然 后将此连接升级到基于套接字的连接 。 然后这个单⼀连接⽤于所有未来的通信
4、 Light -与 http 相⽐, WebSocket 消息数据交换要轻得多。
20、什么是 AOP?
在软件开发过程中, 跨越应⽤程序多个点的功能称为交叉问题。 这些交叉问题与 应⽤程序的主要业务逻辑不同。 因此, 将这些横切关注与业务逻辑分开是⾯向⽅ ⾯编程( AOP) 的地⽅。
21、什么是 Apache Kafka?
Apache Kafka 是⼀个分布式发布 - 订阅消息系统。 它是⼀个可扩展的, 容错的 发布 - 订阅消息系统 ,它使我们能够构建分布式应⽤程序 。这是⼀个 Apache 顶 级项⽬。 Kafka 适合离线和在线消息消费。
22、我们如何监视所有 Spring Boot 微服务?
Spring Boot 提供监视器端点以监控各个微服务的度量 。这 些端点对于获取有关应 ⽤程序的信息( 如它们是否已启动) 以及它们的组件( 如数据库等) 是否正常运 ⾏很有帮助。 但是, 使⽤监视器的⼀个主要缺点或困难是, 我们必须单独打开应
⽤程序的知识点以了解其状态或健康状况 。想 象⼀下涉及 50 个应⽤程序的微服务 , 管理员将不得不击中所有 50 个应⽤程序的执⾏终端。
为了帮助我们处理这种情况, 我们将使⽤位于
的开源项⽬。 它建⽴在 Spring Boot Actuator 之上 ,它提供了⼀个 Web UI,使 我们能够可视化多个应⽤程序的度量。
如果⼤家觉得还不错,点赞,收藏,分享,⼀键三连⽀持我⼀下~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。