spring boot面试问题集锦

article/2025/9/18 23:17:20

方志鹏
2019/09/06

Q: 什么是spring boot?

A:多年来,随着新功能的增加,spring变得越来越复杂。只需访问页面https://spring.io/projects,我们将看到所有在应用程序中使用的不同功能的spring项目。如果必须启动一个新的spring项目,我们必须添加构建路径或maven依赖项,配置application server,添加spring配置。因此,启动一个新的spring项目需要大量的工作,因为我们目前必须从头开始做所有事情。Spring Boot是这个问题的解决方案。Spring boot构建在现有Spring框架之上。使用spring boot,我们可以避免以前必须执行的所有样板代码和配置。因此,Spring boot帮助我们更健壮地使用现有的Spring功能,并且只需最少的工作量。

Q:Spring Boot的优点是什么?

A: Spring Boot的优点是

减少开发、测试的时间和工作量。

使用JavaConfig有助于避免使用XML。

避免大量maven导入和各种版本冲突。

提供可选的开发方法。

通过提供默认开发方式进行快速开发。

不需要单独的Web服务器。这意味着您不再需要启动Tomcat、Glassfish或其他任何东西。

由于没有web.xml文件,所以需要更少的配置。只需添加带@ configuration注释的类,然后可以添加带@ bean注释的方法,Spring将自动加载对象并像往常一样管理它。您甚至可以将@Autowired添加到bean方法中,使Spring autowire成为bean所需的依赖项。

基于环境的配置——使用这些属性,您可以将其传递到您正在使用的应用程序环境中:- dspring .profile .active={enviorement}。在加载主应用程序属性文件之后,Spring将在(application-{environment}.properties)处加载后续的应用程序属性文件。

Q:您使用过哪些构建工具来开发Spring引导应用程序?

A: Spring Boot应用程序可以使用Maven和Gradle开发。

Q:什么是JavaConfig?

A:Spring JavaConfig是Spring社区的一个产品,它提供了一种纯java方法来配置Spring IoC容器。因此,它有助于避免使用XML配置。使用JavaConfig的优点是:

面向对象的配置。因为配置在JavaConfig中定义为类,所以用户可以充分利用Java中的面向对象特性。一个配置类可以子类化另一个配置类,覆盖它的@Bean方法,等等。

减少或消除XML配置。已经证明了基于依赖注入原则的外部化配置的好处。然而,许多开发人员不愿意在XML和Java之间来回切换。JavaConfig为开发人员提供了一种纯java方法来配置Spring容器,这种方法在概念上类似于XML配置。从技术上讲,仅使用   JavaConfig配置类来配置容器是可行的,但是在实践中,许多人发现将JavaConfig与XML混合并匹配是理想的。

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

问:如何在不重启服务器的情况下在Spring引导时重新加载我的更改? 答:这可以通过开发工具来实现。有了这个依赖项,您保存的任何更改都将重新启动嵌入的tomcat。Spring Boot有一个开发人员工具(DevTools)模块,它有助于提高开发人员的工作效率。Java开发人员面临的关键挑战之一是将文件更改自动部署到服务器并自动重启服务器。开发人员可以在Spring引导时重新加载更改,而不必重新启动服务器。这将消除每次手动部署更改的需要。Spring Boot在发布第一个版本时没有这个特性。这是开发人员最需要的特性。DevTools模块完全满足开发人员的需求。此模块将在生产环境中禁用。它还提供了H2-database控制台,以便更好地测试应用程序。使用以下依赖项
org.springframework.boot spring-boot-devtools true

下面的示例演示了自动启动和H2 DB控制台的DevTool依赖项用法

什么是Spring boot actuator? 答:Spring boot actuator是Spring boot framework的重要特性之一。Spring boot actuator帮助您访问生产环境中正在运行的应用程序的当前状态,在生产环境中必须检查和监视几个指标。甚至一些外部应用程序也可能使用这些服务来触发对相关人员的警报消息。actuator模块公开一组REST端点,这些端点可以作为HTTP URL直接访问,以检查状态。

问:如何将Spring Boot应用程序作为war包部署? 答:Spring Boot WAR部署

问:什么是Docker吗?如何将Spring引导应用程序部署到Docker? A: Docker是什么 将基于Spring的WAR应用程序部署到Docker 将基于Spring的JAR应用程序部署到Docker

问:如何禁用执行器端点安全在Spring启动? 答:默认情况下,所有敏感的HTTP端点都是安全的,只有具有ACTUATOR角色的用户才能访问它们。安全性是使用标准HttpServletRequest.isUserInRole方法实现的。 我们可以使用-禁用安全性 management.security.enabled = false 建议仅当在防火墙后访问ACTUATOR端点时禁用安全性。

问:如何将Spring引导应用程序运行到自定义端口? 要在自定义端口上运行spring引导应用程序,可以在application.properties中指定端口。 server.port = 8090

什么是ELK堆栈?如何与Spring Boot一起使用? 答:ELK堆栈由三个开源产品组成——Elasticsearch、Logstash和Kibana from Elastic。
在这里插入图片描述

Elasticsearch是一个基于Lucene搜索引擎的NoSQL数据库。     Logstash是一个日志管道工具,它接受来自不同来源的输入,执行不同的转换,并将数据导出到不同的目标。它是一个动态的数据收集管道,具有可扩展的插件生态系统和强大的弹性搜索协同作用     Kibana是一个可视化UI层,工作在Elasticsearch之上。 这三个项目一起用于各种环境中的日志分析。因此Logstash收集和解析日志、弹性搜索索引并存储这些信息,而Kibana提供了一个UI层,提供可操作的可见性。 Spring Boot + ELK stack

问:您有使用Spring Boot编写测试用例吗? 答:SpringBoot为编写单元测试用例提供了@SpringBootTest Spring引导单元测试的简单示例

问:YAML是什么? 答:YAML是一种人类可读的数据序列化语言。它通常用于配置文件。 与属性文件相比,YAML文件的结构更加结构化,如果我们希望在配置文件中添加复杂的属性,那么它不会造成太大的混乱。可以看到,YAML具有分层的配置数据。 在Spring引导中使用YAML属性

问:如何为Spring引导应用程序实现安全性?

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

Spring引导安全性示例和说明

问:您是否集成了Spring Boot和ActiveMQ ?

为了集成Spring Boot和ActiveMQ,我们使用Spring - Boot -starter- ActiveMQ依赖项,它只需要很少的配置,没有样板代码。

Spring引导ActiveMQ说明

问:您是否集成了Spring Boot和Apache Kafka ?

答:为了集成Spring Boot和Apache Kafka,我们使用Spring - Kafka依赖项。

Spring Boot + Apache Kafka示例

问:如何使用Spring引导实现分页和排序?

答:使用Spring Boot实现分页非常简单。使用Spring Data-JPA,这是通过传递可分页的org.springframe .data.domain来实现的。可分页到存储库方法。

Spring引导分页说明

什么是Swagger?您是否使用Spring Boot实现了它?

答:Swagger被广泛用于可视化api,Swagger UI为前端开发人员提供在线沙箱环境。在本教程中,我们将使用Swagger 2规范的Springfox实现。Swagger是一种工具、规范和完整的框架实现,用于生成RESTful Web服务的可视化表示。它允许文档以与服务器相同的速度更新。当通过Swagger正确定义时,使用者可以用最少的实现逻辑理解远程服务并与之交互。因此Swagger消除了调用服务时的猜测。

Spring Boot + Swagger2

问:什么是Spring Profiles?如何使用Spring Boot实现它?

答:Spring Profiles允许用户根据配置文件(dev, test, prod等)注册bean。因此,当应用程序在开发中运行时,只能加载某些bean,当应用程序在生产中运行时,只能加载某些其他bean。假设我们的需求是Swagger文档只对QA环境启用,对所有其他环境禁用。这可以使用配置文件来完成。Spring Boot使得使用配置文件非常容易。

Spring引导+配置文件

什么是Spring Boot Batch?如何使用Spring Boot实现它?

答:Spring Boot Batch提供了处理大量记录所必需的可重用功能,包括日志/跟踪、事务管理、作业处理统计信息、作业重启、作业跳过和资源管理。它还提供了更高级的技术服务和特性,通过优化和分区技术,这些特性将支持极高容量和高性能的批处理作业。无论是简单的还是复杂的,大容量批处理作业都可以以高度可伸缩的方式利用该框架来处理大量信息。

Spring Boot Batch

问:什么是FreeMarker模板?如何使用Spring Boot实现它?

答:FreeMarker是一个基于java的模板引擎,最初专注于使用MVC软件架构生成动态web页面。使用Freemarker的主要优势是完全分离了表示层和业务层。程序员可以处理应用程序代码,而设计人员可以处理html页面设计。最后,使用freemarker,这些可以组合在一起,给出最终的输出页面。

Spring Boot + FreeMarker的例子

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

答:Spring提供了一种非常有用的方法,可以使用ControllerAdvice处理异常。我们将实现一个ControlerAdvice类,它将处理控制器类抛出的所有异常。

Spring引导异常处理

什么是缓存?您在Spring引导中使用过缓存框架吗?

答:缓存是本地内存的一个区域,它保存了频繁访问的数据的副本,否则获取或计算这些数据将非常昂贵。使用Hazelcast进行缓存。

Spring Boot + Hazelcast示例

问:您是否使用Spring Boot公开了SOAP web服务端点?

是的。使用Spring Boot公开了要使用的web服务。使用契约优先的方法从wsdl生成类。

Spring引导+ SOAP Web服务示例

问:您如何使用Spring Boot执行数据库操作?

答:Spring引导教程-Spring Data JPA

Spring引导JDBC示例

问:如何使用Spring上传文件?

A: Spring Boot +文件上传的例子

问:如何用Spring Boot实现拦截器? 答:使用Spring MVC HandlerInterceptor与Spring引导

问:如何在Spring Boot下使用schedulers ? 答:Spring引导任务调度程序示例

问:您使用过哪些启动器maven依赖项? 答:使用过不同的starter依赖项,如spring-boot-starter-activemq依赖项、spring-boot-starter-security依赖项、spring-boot-starter-web依赖项。 这有助于减少依赖项的数量,并减少版本组合。 Spring引导安全性示例和说明

什么是CSRF攻击?如何启用CSRF对其进行保护? CSRF代表跨站请求伪造。它是一种攻击,迫使最终用户在其当前已经过身份验证的web应用程序上执行不需要的操作。CSRF攻击专门针对状态更改请求,而不是数据窃取,因为攻击者无法看到对伪造请求的响应。 Spring引导安全性—启用CSRF保护

问:如何使用Spring引导使用表单登录身份验证? 答:Spring引导表单安全登录Hello World示例

什么是OAuth2?如何使用Spring Boot实现它? 答:Spring Boot + OAuth2实现

问:GZIP是什么?如何使用Spring Boot实现它? 答:gzip是一种文件格式,是一种用于文件压缩和解压缩的软件应用程序。 Spring引导+ GZIP压缩

问:您在Spring引导中使用过集成框架吗? 答:已将Apache Camel与Spring引导集成。使用Apache Camel Spring启动启动依赖项。

Spring Boot +Apache Camel

问:什么是Apache Freemarker?什么时候使用它而不是JSP?如何与Spring Boot集成? 答:JSP是为网页量身定做的,Freemarker模板是一种更通用的模板语言——它可以用来生成html、纯文本、电子邮件等。 Spring Boot + FreeMarker的例子

问:你什么时候使用WebSockets?如何使用Spring Boot实现它? 答:WebSocket是一种计算机通信协议,通过单个TCP连接提供全双工通信通道。
在这里插入图片描述

WebSocket是双向的——使用WebSocket客户端或服务器都可以发起发送消息。 WebSocket是全双工的——客户端和服务器之间的通信是相互独立的。 单个TCP连接——初始连接使用HTTP,然后将此连接升级为基于套接字的连接。然后,这个单一连接将用于未来的所有通信 轻- WebSocket消息数据交换比http轻得多。 Spring Boot + WebSockets的例子

什么是AOP?如何与Spring Boot一起使用? 答:在软件开发过程中,跨越应用程序多个点的功能称为横切关注点。这些横切关注点不同于应用程序的主要业务逻辑。因此,将这些横切关注点从业务逻辑中分离出来是面向方面编程(AOP)的切入点。 Spring Boot + AOP示例

问:什么是Apache Kafka?如何与Spring Boot集成? 答:apache Kafka是一个分布式发布-订阅消息传递系统。它是一个可伸缩的、容错的、发布-订阅消息传递系统,使我们能够构建分布式应用程序。这是一个Apache顶级项目。Kafka适用于离线和在线的消息消费。 Spring Boot + Apache Kafka示例

问:我们如何监视所有Spring Boot微服务? 答:Spring Boot提供了actuator 端点来监控单个微服务的指标。这些端点对于获取关于应用程序的信息非常有帮助,比如应用程序是否启动,它们的组件(如数据库等)是否正常工作。但是,使用actuator 接口的一个主要缺点或困难是,我们必须逐个命中这些接口,以了解应用程序的状态或健康状况。假设微服务涉及50个应用程序,管理员将不得不命中所有50个应用程序的actuator 端点。为了帮助我们处理这种情况,我们将使用位于https://github.com/codecentric/springing-boot-admin的开源项目。 它构建在Spring Boot Actuator之上,提供了一个web UI,使我们能够可视化多个应用程序的指标。 Spring Boot Admin

问:您在Spring引导中使用过Spring Cloud组件吗? 答:使用过Netflix Eureka等Spring Cloud组件进行服务注册,Ribbon用于负载平衡。 Spring Boot + Cloud Components Spring Cloud interview Questions

问:如何将Spring Boot应用程序部署到Pivotal Cloud Foundry(PCF)? Deploying Spring Boot Application to PCF

问:如何将Spring Boot + MySQL应用部署到Pivotal Cloud Foundry(PCF)? A: Pivotal Cloud Foundry Tutorial - Deploying Spring Boot + MySQL Application to PCF

问:如何将Spring Boot + RabbitMQ应用部署到Pivotal Cloud Foundry(PCF)? A: Pivotal Cloud Foundry Tutorial - Deploying Spring Boot + RabbitMQ Application to PCF

本文为转载文章,转载请标明原文出处。
原文链接:https://www.cnblogs.com/davidwang456/p/10365640.html
本文链接:https://www.fangzhipeng.com/javainterview/2019/09/06/boot-interview1.html 

http://chatgpt.dhexx.cn/article/T75K00mu.shtml

相关文章

五分钟体验分布式事务框架Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。本教程旨在为读者提供一个快速入门seata的案例,详细使用请参考…

SpringBoot非官方教程 | 第二十五篇:2小时学会springboot

转载请标明出处: https://www.fangzhipeng.com/springboot/2017/05/25/sb25-2hour.html 本文出自方志朋的博客 一.什么是spring boot Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configurat…

Spring Cloud Alibaba教程:使用Nacos作为配置中心

转载请标明出处: https://blog.csdn.net/forezp/article/details/90729945 本文出自方志朋的博客 个人博客纯净版https://www.fangzhipeng.com/springcloud/2019/06/01/sc-nacos-config.html 在上一篇文章中讲解了如何使用Nacos作为服务注册中心注册。Nacos除了可以…

20 个实例玩转 Java 8 Stream

点击关注公众号,Java干货及时送达 先贴上几个案例,水平高超的同学可以挑战一下: 1. 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里。 2. 统计员工的最高薪资、平均薪资、薪资之和。 3. 将员工按薪资从高到低排序&am…

2019新鲜出炉的BAT通关面试题 Java岗

点击上方“方志朋”,选择“置顶或者星标” 你的关注意义重大! 来源于公号:孤独烟 由于近期是互联网寒冬,然而烟哥的好友还是顶着重重压力出去面试,最终斩获无数offer。 在烟哥的沟通下,终于套得其中一套题…

史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)

转载请标明出处: https://www.fangzhipeng.com/springcloud/2017/06/02/sc02-rest-ribbon.html 本文出自方志朋的博客 个人博客纯净版:https://www.fangzhipeng.com/springcloud/2017/06/02/sc02-rest-ribbon.html 最新Finchley版本: https:…

史上最简单的 SpringCloud 教程 | 终章

转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客 扫码关注有惊喜 (转载本站文章请注明作者和出处 方志朋的博客) 个人博客纯净版https://www.fangzhipeng.com/spring-cloud.html 错过了这一篇…

SpringCloud-Finchley集成Zuul服务网关组件并实现回退

1.服务网关Zuul介绍 服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微…

数控机床设备物联网远程控制解决方案

数控机床设备应用物联网技术方案实现远程监控管理背景 数控机床设备利用先进的计算机和网络技术进行设备物联网。利用计算机硬件、软件、网络设备通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以战略竟优、提高效率为目的,支持高层决策、中层管理…

远程控制树莓派

一、局域网 1. 让树莓派连上手机热点或wifi 将空白的ssh文件放入树莓派SD卡的boot盘 手动创建一个空白记事本.txt文件,命名为ssh,重命名,删掉.txt扩展名。将这个文件放入SD卡的boot盘中。 配置wifi文件,放入SD卡的boot盘 用同样…

推荐一款国产远程控制软件ToDesk,轻量级,不限速,开启云办公新模式

一、远程办公新时代 前段时间,我们公司使用的向日葵远程控制竟然崩了,导致无法登录,当时以为是公司网络出问题了,结果并妹有。后来就看到官方回应说,因为大量用户涌入导致服务器宕机了! 不管你们信不信&a…

远程控制电脑

任意网络环境下的设备远程控制任意网络环境下的设备 对于远程操控电脑已经不是什么难的事情了,但是对于有的操作方法其实还是有难度的,今天我就介绍一下如何远程控制电脑。 1、远程控制的好处 远程控制的好处那就多了,不管你是学生还是…

企业如何实现IoT物联网远程控制

在IoT物联网革命中,一切都正在变得智能化,因此也可以称其为连接设备的革命。如今,物联网采用信息化技术手段,促进了人类生活和生产服务的全面升级,从智能家居硬件、智能穿戴、智能交通、智能医疗、智能车载、嵌入式开发…

服务器如何开启远程控制,远程控制命令设置方法介绍

大家在长时间的使用电脑以后,电脑就会出现一些毛病,这个时候人们都会给电脑维修工打电话亲上 门 儿服务,而大家都知道上门儿服务费用是非常的高的。但是远程控制出现就解决了这个问题,大家可以通过网络工程师对自己电脑进行远程控制,从而实现修理电脑的目的。但是有非常多…

快速实现远程控制Android手机

直接在web端或者手机端远程控制其他手机,想想都刺激,于是在google上一阵狂搜,发现很多方案都要root手机,直接pass,还有的方案需要写大量看不懂的代码,pass。最近一直在研究的冰狐智能辅助平台出了一个远程控…

内网远程控制安卓设备软件推荐

有些企业需要在内网环境远程控制安卓设备,实现批量维护安卓设备等需求。有什么软件或者解决方案,可以实现内网远程控制安卓设备呢? 这个问题要分两个情况解决,看你能不能走外网。如果IT和安卓设备属于同一个局域网,但…

向日葵远程控制的使用方法

1. 首先在办公电脑上下载安装向日葵远程控制端,注册账号,记录保存“允许控制本机”的“本机识别码”和“本机验证码”,并设置“开机自动启动”,保持向日葵的开启状态; 2. 在家用电脑上下载安装向日葵远程控制端&#…

远程控制工具哪个好?向日葵VS ToDesk,安卓移动设备远程操控哪个更好用?

现如今,科技的发展,使得手机的功能也越来越智能化,可有些小伙伴对智能化手机有许多不会操作的地方,这时,就可以利用远程手机软件,来请求别人的远程帮助。或者,当我们的手机丢失了,也…

计算机远程控制阀门开启,阀门远程控制系统

原标题: 阀门远程控制系统 一、系统概述 阀门远程监控系统以无线方式通过云服务中心发出指令来控制放置远端的(如野外、地下管网等)电动阀们设备,从而实现电动阀门的开关,并将阀门的开关状态、工作状态、设备是否在线、历史数据查询等信息反馈…

如何免ROOT,实现安卓设备远程控制?

关于远控移动设备,小编经常收到一些疑问,最常见的就是远控安卓必须root吗? 那必须不是啊!无需root,远控安卓一样有的是办法! 今天小编就带大家来看一下如何轻松解决免root,远控安卓手机的办法…