【面试宝典】Spring Boot 系列面试题

news2024/11/18 13:36:44

1、什么是 Spring Boot?

多年来,随着新功能的增加,spring 变得越来越复杂。如果必须启动一个新的 Spring 项目,我们必须添 加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。 因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所 有事情。

Spring Boot 是解决这个问题的方法。Spring Boot 已经建立在现有 spring 框架 之上。使用 spring 启动,我们避免了之前我们必须做的所有样板代码和配置。因 此,Spring Boot 可以帮助我们以最少的工作量,更加健壮地使用现有的 Spring 功能。

2、Spring Boot 有哪些优点?

  • 减少开发,测试时间和努力。
  • 使用 JavaConfig 有助于避免使用 XML。
  • 避免大量的 Maven 导入和各种版本冲突。
  • 提供意见发展方法。
  • 通过提供默认值快速开始开发。
  • 没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东西。
  • 约定大于配置
  • 基于环境的配置

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 上的更改,而无需重新启动服务器?

热部署:DevTools:

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

<dependency>
	 <groupId>org.springframework.boot</groupId> 
	 <artifactId>spring-boot-devtools</artifactId> 
	 <optional>true</optional>
</dependency>
	 

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 实现了它吗?

Swagger 广泛用于可视化 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 依赖项?

使用了下面的一些依赖项等等(举俩例子即可)

spring-boot-starter-activemq 
spring-boot-starter-security

这有助于增加更少的依赖关系,并减少版本的冲突。

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,使 我们能够可视化多个应用程序的度量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue(九)——页面路由(1)

目录 路由的简介 路由基本使用 几个注意点 嵌套&#xff08;多级&#xff09;路由 路由的query参数 命名路由 路由的params参数 路由的props配置 路由的简介 理解&#xff1a; 一个路由&#xff08;route&#xff09;就是一组映射关系&#xff08;key - value&#xff…

【毕业设计】深度学习身份证识别系统 - 机器视觉 python

文章目录0 前言1 实现方法1.1 原理1.1.1 字符定位1.1.2 字符识别1.1.3 深度学习算法介绍1.1.4 模型选择2 算法流程3 部分关键代码4 效果展示5 最后0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任…

第八章: 项目质量管理

一、规划质量管理 识别项目及其可交付成果的质量要求和标准&#xff0c;并书面描述项目将如何证明符合质量要求和标准的过程。主要作用为整个项目期间如何管理和核实质量提供指南和方向。 输入工具与技术输出 1.项目章程 2.项目管理计划 需求管理计划风险管理计划相关方参与计…

C++ opencv图像直方图

1.图像直方图概念 图像有很多基础概念&#xff0c;在我们学习的过程中因为一些原因无法涉及&#xff0c;但这并不代表它们不重要 今天&#xff0c;我们就来介绍一个概念——图像直方图 图像直方图&#xff0c;是图像处理中很重要的一个基础概念&#xff0c; 有很多的算法&…

用HTML+CSS做一个漂亮简单的旅游网站——旅游网页设计与实现(6页)HTML+CSS+JavaScript

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

(八)Java算法:堆排序(详细图解)

目录一、前言1.1、概念1.2、大根堆特点二、maven依赖三、流程解析3.1、初始建堆3.2、堆化第一步3.2、堆化第二步3.3、堆化第三步3.4、堆化第四步3.5、堆化第五步3.6、堆化第六步四、编码实现4.1、代码实现4.2、运行结果&#xff1a;扩展一、前言 1.1、概念 根据堆的结构可以分…

彩印图文版《Elasticsearch实战》文档,阿里内部共享,堪称精品

学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的时候…

Lesson1强化学习(RL)初印象 学习笔记

一、强化学习引入 ​ 人的智能可以遗传获得也可以通过后天学习&#xff1b;学习有两种&#xff0c;模仿前人的经验是一种学习&#xff1b;如果没有前人的经验可以学习&#xff0c;就需要和环境进行交互&#xff0c;得到反馈来学习。 #mermaid-svg-XUxguPj6VHcJMK3W {font-famil…

the account is locked

感谢阅读问题描述解决方案1.WinR打开命令行输入&#xff1a;sqlplus &#xff0c;或者使用sqlplus / as sysdba;无需输入密码。2.假设我们要解锁的账户是scott3.修改密码&#xff0c;从而避免再次被锁4.重启服务或者客户端&#xff08;看你是桌面版还是服务器版&#xff09;&am…

警惕,3D建模为什么选3dsMAX不选MAYA

如今现在的游戏建模都是次世代建模&#xff0c;3DMAX确实是主流软件之一&#xff0c;但是为什么说MAYA更好呢❓ 首先&#xff0c;两款软件都很适合用现代的建模&#xff0c;但是难度上有一定的差异❌ • 软件区别 &#x1f340;3DSMAX&#xff1a; 它是目前使用最广泛的3d软…

十、Mysql的DQL语句

Mysql的DQL语句十、Mysql的DQL语句select的查询一、查看系统参数二、select常用函数三、select的单表查询1、from子句2、where子句2.1 where配合等值查询2.2where配合比较操作符(> < > < <>)2.3where配合逻辑运算符(and or )2.4where配合模糊查询2.5where配合…

流量控制可靠传输机制停止-等待协议

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录链路层流量控制和传输层的流量控制区别停止-等待协议为什么要有停止等待协议无差错情况滑动窗口协议后退N帧协议GBN选择重传协议SR可靠传输流量控制&#x1f343;博主昵称&#xff1a;一拳必胜客 &#x1f3…

供应链全流程计划与排产解决方案核心功能概要

通过数字智能化运营实现将本增效至为重要。 许多企业的业务现状是销售、生产计划与市场不匹配&#xff0c;企业的运营效率低且成本高&#xff1a; 销售计划计划需要大量的人员进行沟通&#xff0c;销售预测的分析维度少、粒度粗&#xff0c;不仅效率低&#xff0c;且预测只是一…

【mycat】常用分片规则

一、 常用分片规则 1、取模 ​ 此规则为对分片字段求摸运算。也是水平分表最常用规则 2、分片枚举 ​ 通过在配置文件中配置可能的枚举 id&#xff0c;自己配置分片&#xff0c;本规则适用于特定的场景&#xff0c;比如有些业务需要按照省份或区县来做保存&#xff0c;而全…

Delphi Enterprise具有强大视觉设计功能

Delphi Enterprise具有强大视觉设计功能 Delphi可帮助您使用Object Pascal为Windows、Mac、Mobile、IoT和Linux构建和更新数据丰富、超连接、可视化的应用程序。Delphi Enterprise适用于构建客户端/服务器或多层应用程序、REST服务等的开发团队。 Delphi功能 单一代码库-用更少…

小程序在线客服完整实现

1、先注册公众号》小程序(需实名认证) 2、开发》测试》上传》审核发布》发布》使用 3、公众号(订阅号或服务号)与小程序(此为在线客服)通过同一主体绑定可以打通调用 建议 内测完成后再上传。如果多次上传demo会处罚的。 添加客服人员列表(授权)可以电脑、手机端均…

(免费分享)springboot论坛bbs系统

源码获取&#xff1a;关注文末gongzhonghao&#xff0c;输入010领取下载链接 开发工具&#xff1a;IDEA 数据库mysql5.7 技术&#xff1a;springbootjpashiroredislayui 前台截图&#xff1a; 后台截图&#xff1a; package com.qxczh.admin.service.impl;impor…

云南美食介绍 简单静态HTML网页作品 美食餐饮网站设计与实现 学生美食网站模板

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

A puma at large

New words and expressions puma n. 美洲狮 spot v. 看出,发现 evidence n. 证据 accumulate v. 积累,积聚 oblige v. 使……感到必须 hunt n. 追猎;寻找 blackberry n. 黑莓 Pumas are large, cat-like animals which are found in America. When reports came i…

点击化学PEG试剂巯基吡啶-PEG-叠氮,OPSS-PEG-azide,OPSS-PEG-N3

点击化学PEG试剂OPSS-PEG-azide&#xff08;OPSS-PEG-N3 &#xff09;化学试剂其中文名为巯基吡啶-聚乙二醇-叠氮&#xff0c;它所属分类为Azide PEG Orthopyridyl disulfide (OPSS) PEG。 其分子量均可定制&#xff0c;有&#xff1a;2K 巯基吡啶-PEG-叠氮、5k OPSS-PEG-N3、…