当前位置: 首页 > 科技观察

SpringBoot面试常见问题合集,不留死角!

时间:2023-03-15 22:55:34 科技观察

本文将讨论SpringBoot中的10个常见面试问题。在当今的就业市场上,这些问题越来越多,而且可能很棘手。1、@SpringBootApplication注解内部是干什么用的?作为SpringBoot文档,@SpringBootApplication注解相当于使用@Configuration、@EnableAutoConfiguration和@ComponentScan以及它们的默认属性。SpringBoot允许开发人员使用单个注解而不是多个注解。但是,众所周知,Spring提供了松散耦合的特性,我们可以根据项目需要对每个注解进行使用。2.如何在不使用BasePACKAGE过滤器的情况下排除包?有多种过滤包的方法。但是SpringBoot提供了一个更复杂的选项来执行此操作而无需接触组件扫描。使用注解@SpringBootApplication时,可以使用exclude属性。请参见下面的代码片段:@SpringBootApplication(exclude={Employee.class})publicclassFooAppConfiguration{}3.如何禁用特定的自动配置类?如果您发现不想使用任何特定的自动配置类,则可以使用@EnableAutoConfiguration的排除属性。//通过使用“exclude”@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})另一方面,如果类别不在类路径中,您可以使用excludeName类注释并指定完全限定名称。//通过使用"excludeName"@EnableAutoConfiguration(excludeName={Foo.class})另外,SpringBoot还有控制排除自动配置类列表的功能,可以通过spring.autoconfigure.exclude属性来实现。这可以添加到属性应用程序中,并且可以添加多个类以逗号分隔。//通过使用propertyfilespring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration4.什么是SpringActuator?它的优点是什么?这是SpringBoot中最常见的面试问题之一。根据Spring文档:执行器是一个制造术语,指的是移动或控制某物的机械设备。执行器可以通过微小的变化产生大量的运动。众所周知,SpringBoot提供了很多自动配置的特性来帮助开发者快速开发生产组件。但是,在思考调试和如何调试的时候,如果出了问题,总是需要分析日志,深入应用的数据流,看看问题出在哪里。因此,SpringActuator提供了对这些类型的轻松访问。它提供了许多功能,例如创建什么样的bean、控制器中的映射、CPU使用率等。它还可以对应用程序的健康状态和指标应用自动收集和审计。它提供了一种非常简单的方法来访问少数生产就绪的REST端点并从Web获取各种信息。但是通过使用这些端点,您可以做很多事情,请参阅端点文档。无需担心安全问题;如果存在SpringSecurity,则默认情况下使用SpringSecurity的内容协商策略保护这些端点。或者,可以在RequestMatcher的帮助下配置自定义安全性。5.如何启用/禁用执行器?启用/禁用执行器很容易;最简单的方法是启用该功能以将依赖项(Maven/Gradle)添加到启动器spring-boot-starter-actuator。如果您不想启用执行器,则不要添加依赖项。Maven依赖项:org.springframework.bootspring-boot-starter-actuator6.什么是SpringInitializer?这个问题并不难,但面试官总是用它来测试应聘者的专业知识。SpringInitializer是一个Web应用程序,它生成一个SpringBoot项目,其中包含您快速入门所需的一切。一如既往,我们需要一个好的项目框架;它可以帮助您正确创建项目结构/框架。7、什么是执行器停机?Shutdown是一个允许应用程序正常关闭的端点。默认情况下,此功能未启用。您可以在应用程序属性文件中使用management.endpoint.shutdown.enabled=true启用此选项。但请谨慎使用此方法。8.Springboot是否可以更改嵌入式Tomcat服务器的端口?是的,可以更改端口。可以使用application.properties文件更改端口。但需要提及“server.port”(即server.port=8081)。确保你的项目类路径中有application.properties;其余的将由RESTSpring框架接管。如果提到server.port=0,那么它将自动分配任何可用端口。9.是否可以在SpringBoot中覆盖或替换嵌入式Tomcat?是的,可以使用启动依赖项将嵌入式Tomcat替换为任何其他服务器。您可以根据需要使用SpringBootStarterJetty或SpringBootStarter作为每个项目的依赖。10.可以在SpringBoot应用程序中禁用默认Web服务器吗?Spring的主要优点是它为构建松散耦合的应用程序提供了灵活性。Spring提供了在快速配置中禁用Web服务器的能力。可以使用application属性配置Web应用程序类型,例如spring.main.web-application-type=无。