精选!Spring Boot必知面试十大问题!(附答案

304 阅读5分钟

优锐课vip笔记之springboot面试专题分享,特意找时间准备这些常见面试问题,为下一次Spring Boot面试做好准备。 在本文中,我们将讨论Spring

Boot中的十大面试问题。在当今的就业市场中,这些问题有些棘手,而且趋势严重。

1) @SpringBootApplication批注在内部做什么?

根据Spring Boot的文档,@SpringBootApplication注释等效于使用@Configuration,@EnableAutoConfiguration和@ComponentScan及其默认属性。SpringBoot使开发人员可以使用单个注释而不是多个注释。但是,据我们所知,Spring提供了松散耦合的功能,我们可以根据项目需要将其用于每个单独的注释。

2) 如何不使用basePackages过滤器排除任何软件包?

你可以使用不同的方法来过滤任何软件包。但是SpringBoot提供了一个更棘手的选项来实现此目标,而无需进行组件扫描。你可以在使用注释@SpringBootApplication时使用exclude属性。请参见以下代码段:

@SpringBootApplication(exclude= {Employee.class})
ublic class FooAppConfiguration {}

3) 如何禁用特定的自动配置类?

如果找到不需要的任何特定自动配置类,则可以使用@EnableAutoConfiguration的exclude属性。

//By using "exclude"
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

另一方面,如果该类不在类路径中,则可以使用注释的excludeName属性,并指定完全限定名称。

//By using "excludeName"
@EnableAutoConfiguration(excludeName={Foo.class})

而且,Spring Boot提供了一种工具,可以通过使用spring.autoconfigure.exclude属性来控制要排除的自动配置类的列表。你可以添加到application.properties中。你可以添加多个用逗号分隔的类。

//By using property file
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

4) 什么是Spring Actuator? 它有什么优势?

这是Spring Boot中最常见的面试问题之一。

根据Spring文档: "Actuator是制造术语,是指用于移动或控制某些物体的机械设备。 Actuators可以通过很小的变化产生大量的运动。"

众所周知,Spring Boot提供了许多自动配置功能,可帮助开发人员快速开发生产组件。但是,如果你考虑调试以及如何调试,如果出现问题,我们总是需要分析日志并挖掘应用程序的数据流,以查看发生了什么。因此,SpringActuator使你可以轻松访问这些功能。它提供了许多功能,即创建了哪些bean,控制器中的映射,CPU使用率等。然后可以将自动收集和审核运行状况和指标应用于你的应用程序。

它提供了一种非常简单的方法来访问少量可用于生产的REST端点,并从Web上获取各种信息。但是通过使用这些端点,你可以做很多事情来查看此处的端点文档。无需担心安全性。如果存在Spring Security,则默认情况下将使用SpringSecurity的内容协商策略保护这些端点的安全。否则,我们可以在RequestMatcher的帮助下配置自定义安全性。

5) 如何启用/禁用Actuator?

启用/禁用执行器很容易; 最简单的方法是启用功能以将依赖项(Maven / Gradle)添加到spring-boot-starter-actuator,即Starter。 如果你不希望启用actuator,则不要添加依赖项。

Maven依赖:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>

6) 什么是Spring Initializer?

这可能不是一个难题,但是面试官总是检查候选人的学科知识。 通常,你总是不能总是期待已准备好的问题。但是,这是几乎所有时间都提出的非常普遍的问题。

Spring Initializer是一个Web应用程序,它会生成一个SpringBoot项目,其中包含快速启动它所需的一切。与往常一样,我们需要一个良好的项目框架。它可以帮助你正确创建项目结构/骨架。 你可以在此处了解有关初始化程序的更多信息。

7) 什么是actuator停机?

Shutdown是一个端点,它可以使应用程序正常关闭。默认情况下不启用此功能。你可以通过在application.properties文件中使用management.endpoint.shutdown.enabled = true来启用此功能。 但是,如果要使用此功能,请注意这一点。

8)是否可以在Spring Boot中更改Embedded Tomcat服务器的端口?

是的,可以更改端口。你可以使用application.properties文件更改端口。但是你需要提及“ server.port”(即server.port = 8081)。确保项目类路径中有application.properties; REST Spring框架将负责其余的工作 如果你提到server.port = 0,那么它将自动分配任何可用的端口。

9) 我们可以在Spring Boot中覆盖或替换Embedded Tomcat服务器吗?

是的,我们可以使用Starter依赖项将EmbeddedTomcat替换为任何其他服务器。你可以根据需要将spring-boot-starter-jetty或spring-boot-starter-undertow用作每个项目的依赖项。

10)我们可以在Spring Boot应用程序中禁用默认的Web服务器吗?

Spring的主要优点是提供灵活性以构建松耦合的应用程序。 Spring提供的功能可以在快速配置中禁用Web服务器。是的,我们可以使用application.properties来配置Web应用程序类型,即spring.main.web-application-type = none。

还有就是这我总结出了一些架构视频资料和互联网公司java程序员面试涉及到的绝大部分面试题和答案做成了文档和架构视频资料还有完整高清的java进阶架构学习路线图free分享给大家(包括Dubbo、Redis、Netty、zookeeper、Springcloud、分布式、高并发等架构技术资料),有问题的可以关注找我来交流