Spring Boot 面试题

Spring Boot 面试题

最近学了springboot,想整理出一波springboot知识点,没想到自己看了半天还是有些云里雾里,所以暂时先整理点基础型的面试题稍微回顾一下

1、什么是Spring Boot?

在之前如果必须启动一个新的 Spring 项目, 必须添加构建路径或添加 Maven 依赖关系, 配置应用程序服务器, 添加 spring 配置。 然而功能的不断增加, spring 变得越来越复杂。让开始一个新的 spring 项目变得很繁琐。

然而Spring Boot 的出现解决了这个问题。Spring Boot 已经建立在现有 spring 框架之上。通过使用spring , 我们避免了之前我们必须做的所有样板代码和配置。因此, Spring
Boot 可以帮助我们以最少的工作量, 更加健壮地使用现有的 Spring 功能。
它的特点如下:

  1. 创建独立的 Spring 应用程序
  2. 嵌入的 Tomcat ,无需部署 WAR 文件
  3. 简化 Maven 配置
  4. 自动配置 Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置
  6. 对 XML 没有要求配置

2、Spring Boot 有哪些优点?

Spring Boot 的优点有:

1、减少开发, 测试时间和努力。
2、使用 JavaConfig 有助于避免使用 XML。
3、避免大量的 Maven 导入和各种版本冲突。
4、提供意见发展方法。
5、通过提供默认值快速开始开发。
6、没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat, Glassfish 或其他
任何东西。
7、需要更少的配置 因为没有 web.xml 文件。只需添加用@ 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、什么是 YAML?

YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。
与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加
结构化, 而且更少混淆。可以看出 YAML 具有分层配置数据。

5、什么是 AOP?

" 横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。

使用"横切"技术,AOP 把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事物。AOP 的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。

6、如何在自定义端口上运行Spring Boot 应用程序?

为了在自定义端口上运行 Spring Boot 应用程序, 可以在application.properties 中指定端口。

例如:

server.port = 80

7、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?

这可以使用 DEV 工具来实现。通过这种依赖关系, 您可以节省任何更改, 嵌入式
tomcat 将重新启动。Spring Boot 有一个开发工具( DevTools)模块,它有助于
提高开发人员的生产力。

Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新加载 Spring Boot 上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring Boot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。DevTools 模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供 H2 数据库控制台以更好地测试应用程序。

这是它的依赖信息

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

8、Spring Boot 中的监视器是什么?

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

9、什么是 Spring Profiles?

Spring Profiles 允许用户根据配置文件( dev,test,prod 等)来注册 bean。因此,当
应用程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION 中, 某些其
他 bean 可以加载。假设我们的要求是 Swagger 文档仅适用于 QA 环境,并且禁用所有
其他文档。这可以使用配置文件来完成。Spring Boot 使得使用配置文件非常简单。

10.如何使用 Spring Boot 实现异常处理?

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

11、什么是 Apache Kafka?

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

12、什么是 WebSockets?

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

1、WebSocket 是双向的 -使用 WebSocket 客户端或服务器可以发起消息发送。
2、WebSocket 是全双工的 -客户端和服务器通信是相互独立的。
3、单个 TCP 连接 -初始连接使用 HTTP,然后将此连接升级到基于套接字的连接。然后这
个单一连接用于所有未来的通信
4、Light -与 http 相比, WebSocket 消息数据交换要轻得多。

11.常用的注解(不确定这个会不会面试题,整理出来自用一波)

没想到会有水印,明天再整一波
在这里插入图片描述
SpringBoot注解最全详解(整合超详细版本)

当然,我可以为您介绍一些常见的Spring Boot面试题。以下是一些常见的问题和答案: 1. 什么是Spring BootSpring Boot是一个用于创建独立的、基于Spring的应用程序的框架。它简化了Spring应用程序的配置和部署过程,并提供了一套开箱即用的功能,如自动配置、嵌入式服务器等。 2. Spring Boot的主要特点有哪些? - 简化配置:Spring Boot通过自动配置和约定大于配置的原则,减少了繁琐的配置。 - 内嵌服务器:Spring Boot可以使用内嵌的Tomcat、Jetty或Undertow服务器,无需外部容器。 - 自动配置:Spring Boot根据项目的依赖自动配置应用程序。 - 简化依赖管理:Spring Boot使用起步依赖(Starter)来管理依赖关系,简化了依赖管理。 - Actuator:Spring Boot提供了Actuator模块,可以监控和管理应用程序。 3. Spring Boot如何实现自动配置? Spring Boot通过条件注解和自动配置类实现自动配置。条件注解根据条件判断是否需要进行自动配置,自动配置类提供了默认的配置。 4. 如何在Spring Boot中配置数据源? 在Spring Boot中,可以通过在application.properties或application.yml文件中配置数据源相关属性来配置数据源。例如,可以配置数据库的URL、用户名、密码等。 5. 如何启用Spring Boot的日志输出? Spring Boot使用了Commons Logging作为日志抽象层,默认使用Logback作为日志实现。可以通过在application.properties或application.yml文件中配置相关属性来控制日志输出。 6. 如何在Spring Boot中实现跨域请求? 可以通过在控制器类或方法上添加@CrossOrigin注解来实现跨域请求。也可以通过配置WebMvcConfigurer来全局配置跨域请求。 7. 如何在Spring Boot中实现缓存? Spring Boot提供了对多种缓存技术的支持,如Ehcache、Redis等。可以通过在pom.xml文件中添加相应的依赖,并在配置文件中配置相关属性来启用缓存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值