2022年最新Spring Boot面试题

本文详述了Spring Boot的核心概念、优势、常用启动器、配置加载顺序、核心注解、运行方式、Actuator监视器、异常处理、配置文件、安全性、与其他框架的集成以及更多面试常见问题,旨在全面解析Spring Boot的各个方面。
摘要由CSDN通过智能技术生成

1.什么是SpringBoot?

SpringBoot建立在现有Spring框架至上。使用spring启动,我们避免了之前我们必须做的所有样板代码和配置。因此,SpringBoot可以帮助我们以最少的工作量,更加健壮地使用现有的Spring功能

2.为什么要用SpringBoot

一.独立运行

SpringBoot内嵌了各种servlet容器,Tomecat等,不需要达成war包部署到容器中,SpringBoot只要打成一个可执行jar包就能独立运行,所有依赖都在一个jar包内

二.减少配置

spring-boot-starter-web启动器自动依赖其他组件,减少maven配置

三.自动配置

springboot可以根据jar包自动配置bean,如添加一个spring-boot-starter-web启动器就能拥有web功能,无需其他配置

四.无代码生产和xml配置

springboot配置过程中无代码生成,也无需xml配置文件就能完成所有配置工作,这一切都用注解完成的。

五.应用监控

springboot提供一系列端点可以监控服务及应用,做健康检测

3.SpringBoot有哪些优点?

1.减少开发
2.使用javaConfig有助于避免使用XML
3.避免大量的Maven导入和各种版本冲突
4.需要更少的配置文件,只需要注解来完成

4.SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?

核心注解@SpringBootApplication,由以下三个注解组成

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

2.@EnableAotoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能

3.@Components Can:Spring组件扫描

5.运行SpringBoot有哪几种方式

1.打包用命令或者放到容器中运行

2.使用maven插件运行

3.直接执行main方法运行

6.如何理解SpringBoot中的Starters?

Starters是什么:

Starters可以理解为启动器,包含集成到应用里面的依赖包,Starters包含了许多项目中需要用到的依赖

Starters命名:

springboot启动器都是以spring-boot-starter-命名的

Starters分类:

1.springboot应用类启动器

启动器名称 功能描述
spring-boot-starte 包含自动配置,日志,yaml的支持
spring-boot-starte-web 使用SpringMVC构建web工程,默认使用Tomcat容器

2.SpringBoot生产启动器

启动器名称 功能描述
spring-boot-starter-actuator 提供生产环境特性,能监控管理应用

3.springboot技术类启动器

启动器名称 功能描述
spring-boot-starter-json 提供对json的读写支持
spring-boot-starter-logging 默认的日志启动器,默认使用Logback

4.其他第三方启动器

7.如何在springboot启动的时候运行一些特点的代码

可以实现接口ApplicationRunner或者CommandLineRunner,这俩个接口实现方式一样,他们都提供一个run方法。CommandLineRunner:启动获取命令行参数

8.SpringBoot需要独立的容器运行吗?

不需要,内种Tomact容器

9.SpringBoot中的监视器是什么?

SpringBoot acruator(阿克斯维ter)是spring启动框架中的重要功能之一。springboot监视器可帮助您访问生态环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来相关人员触发警报消息。监视器模块公开了一组可直接作为Http URl访问的REST端点来检查状态

10.如何使用springboot实现异常处理

通过实现ControllerAdvice类,来处理控制器抛出所有异常

11.springboot常用的starter有哪些

spring-boot-starter-web:嵌入Tomcat和web开发需要servlet与jsp支持

spring-boot-starter-data-jpa:数据库支持

spring-boot-starter-data-redis:redis数据库支持

spring-boot-starter-data-solr:solr支持

mybatis-spring-boot-starter:第三方的mybatis集成starter

12.springboot实现热部署有哪几种方式

Spring Loaded

Spirng-boot-devtolls

13.如何理解SpringBoot配置加载顺序

在Springboot里面,可以使用以下几种方式来加载配置

1.properites文件

2.yaml文件

3.系统环境变量

4.命令行参数

14.springboot的核心配置文件有哪几个?他们的区别是什么?

SpringBoot的核心配置文件是application和bootstrap配置文件

application用于springboot项目的自动配置

bootstrap配置文件有以下几个应用场景

1.使用springcloud config配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息。

2.一些固定的不能被覆盖的属性

3.一些加密/解密的场景

15.如何集成springboot和ActiveMQ

使用spring-boot-starter-activemq依赖关系

16.什么是javaConfig?

springjavaConfig是spring社区的产品,提供配置spring loc容器的纯java方法。有助于避免使用xml配置。

javaConfig优点:

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

2.减少xml配置。

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

17.如何重新加载springboot上的更改,而无需重新启动服务器?

热部署

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

18.如何在springboot中禁用actuator端点安全性?

默认情况下,所有敏感的http端点都是安全的,只有具有actuator角色的用户才能访问他们。安全性是使用标准的httpServletRequest.isUserInRole方法实施的。我们可以使用来禁用安全性。只有在执行机构端点在防火墙后访问时,才建议禁用安全性

19.什么是yaml

yaml是一种人类可读的数据序列化语言。它通常用于配置文件。

与属性文件相比,如果我们想要配置文件中添加复杂的属性,yaml文件就更加结构化,而且更少混淆。可以看出taml具有分层配置数据

20.如何实现springboot应用程序的安全性?

使用spring-boot-starter-security(四k瑞尔停)依赖项,添加安全配置

2

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qinꦿ.๓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值