Spring相关|Spring Boot 面试题 汇总 --- 《绝绝子》

什么是 Spring Boot
Spring相关|Spring Boot 面试题 汇总 --- 《绝绝子》
文章图片

多年来,随着新功能的增加,Spring变得越来越复杂。 只需访问https://spring.io/projects页面,我们就会看到可以在我我们程序中使用的所有Srping项目的不同功能。 Spring Boot已经建立在现有Spring框架之上。使用Spring启动,我们避免了之前我们必须做的所有样板代码和配置。 因此,Srping Boot可以帮助我们以最少的工作量,更加健壮地使用现有的Spring功能。

Spring Boot 有哪些优点
①减少开发,测试时间。②使用 JavaConfig 有助于避免使用XML。③避免大量的 Maven 导入和各种版本冲突。④需要更少的配置,因为没有web.xml。⑤通过提供默认值快速开始开发。⑥没有单独的Web服务器需要,这意味着你不再需要启动Tomcat,Glassfish或任何东西。

什么是 JavaConfig ?
Spring JavaConfig 是 Spring社区的产品,它提供了配置Spring Ioc容器的纯Java方法。因此它有助于避免使用XML配置。

JavaConfig 的 优点
面向对象的配置
由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 java 中的面向对象功能。 一个配置类可以继承另一个,重写它的@Bean方法等。

减少或消除XML配置
JavaConfig 为开发人员提供了一种纯 Java 方法来配置与 XML 配置概念相似的 Spring 容器。 从技术角度来讲,只使用 JavaConfig 配置类来配置容器是可行的。 但实际上很多人认为将 JavaConfig 与 XML 混合匹配是理想的。

类型安全和重构友好
JavaConfig 提供了一种类型安全的方法来配置 Spring容器。 由于 Java 5.0 对泛型的支持,现在可以按类型而不是按名称检索 bean,不需要任何强制转换或基于字符串的查找。

如何重新加载 Spring Boot 上的更改,而无需重新启动服务器
Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。 Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。 开发人员可以重新加载 Spring Boot 上的更改,而无需重新启动服务器。 org.springframework.boot spring-boot-devtools true

【Spring相关|Spring Boot 面试题 汇总 --- 《绝绝子》】Spring Boot 中的 监视器 (Actuator) 是什么?
Spring Boot Actuator 是启动框架中的重要功能之一。 Spring Boot 监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。 监视器模块公开一组可直接作为HTTP、URL 访问的 REST 端点来检查状态。

如何在 自定义端口上运行 Spring Boot 应用程序?
配置文件: application.properties
端口配置: server.port = 8080
什么是 YAML
YAML 是一种数据序列化语言,具有分层配置数据,它通常用于配置文件。 如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。

什么是 Swagger
Swagger 广泛用于可视化 API,使用 Swagger UI 为前端开发人员提供在线沙箱。 Swagger 是用于生成 RESTful Web 服务的可视化表示的工具,规范和完整框架实现。它使文档能够以与服务器相同的速度更新。

什么是 Spring Profiles
Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册 bean。 因此,当应用程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION中,某些其他 bean 可以加载。

什么是 Spring Batch
Spring Boot Batch 提供可重用的函数,这些函数在处理大量记录时非常重要,包括日志/跟踪,事务管理,作业处理统计信息,作业重新启动,跳过和资源管理。 它还提供了更先进的技术服务和功能,通过优化和分区技术,可以实现极高批量和高性能批处理作业。 简单以及复杂的大批量批处理作业可以高度可扩展的方式利用框架处理重要大量的信息。

什么是 FreeMarker 模板 ?
FreeMarker 是一个基于 Java 的模板引擎,最初专注于使用 MVC 软件架构进行动态网页生成。 使用 Freemarker 的主要优点是表示层和业务层的完全分离。 程序员可以处理应用程序代码,而设计人员可以处理 html 页面设计。 最后使用freemarker 可以将这些结合起来,给出最终的输出页面。

如何实现 Srping Boot 应用程序的 安全性
使用 Spring-boot-sarter-security 依赖项,并且必须添加安全配置。 它只需要很少的代码,配置类将必须扩展 WebSecurityConfigurerAdapter 并覆盖其方法。

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

Spring Boot 中使用了哪些 starter maven 依赖项
spring-boot-starter-activemq spring-boot-starter-security有助于增加更少的依赖关系,并减少版本的冲突。

什么是 CSRF 攻击 ?
CSRF 代表跨站请求伪造。 这是一种攻击,迫使最终用户在当前通过身份验证的 Web 应用程序上执行不需要的操作。 CSRF 攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。

什么是 WebSockets
WebSocket 是一种计算机通信协议,通过单个 TCP 连接提供全双工通信信道。

Spring相关|Spring Boot 面试题 汇总 --- 《绝绝子》
文章图片

WebSocket 是双向的
使用WebSocket 客户端或服务器可以发起消息发送。

WebSocket 是全双工的
客户端和服务器通信是相互独立的。

单个TCP连接
初始连接使用 HTTP ,将此连接升级到基于套接字的连接。 然后这个单一连接用于所有未来的通信。

Light
与 HTTP 相比,WebSocket 消息数据交换要轻易得多。

什么是 Apache Kafka ?
Apache Kafka 是一个分布式发布 - 订阅消息系统。 它是一个可扩展的,容错的发布 - 订阅消息系统,它使我们能够构建分布式应用程序。 这是一个 Apache 顶级项目。Kafka 适合离线和在线消息消费。

    推荐阅读