- Java内存管理面试指南一
- Java基础面试指南一
- Java基础面试指南二
- Java基础面试指南三
- Java基础面试指南四
- Java线程面试指南一
- Java线程面试指南二
- Redis面试指南一
- Kafka面试指南一
- Spring面试指南一
- SpringBoot面试指南一
- 微服务面试指南一
- 系统设计面试指南一
什么是Spring Boot?
Spring Boot是一个开放源代码的轻量级框架,用于开发基于Java的应用程序。它建立在Spring之上的。它是由Pivotal团队开发和维护的。它主要用于Web和命令行应用程序。它会自动配置所有功能,您只需单击一下即可运行该应用程序。
spring Framework和Spring Boot有什么区别?
Spring框架是用于构建应用程序的最广泛使用的 Java框架。spring框架的主要特征是依赖注入。通过允许我们开发松耦合应用程序,它可以使事情变得更简单。
Spring Boot是Spring框架的模块。Spring Boot的主要功能是自动配置。它会根据该要求自动配置一个类。Spring Boot使得创建独立的基于Spring的独立应用程序变得很容易。
主要区别在于:spring框架为开发应用程序使用了几种配置。Spring Boot允许使用预定义的类路径进行自动配置。
Spring Boot的功能是什么?
- 主要功能是自动配置
- Spring Boot CLI
- Starter POMs
- Actuator
- Spring initializer
- Type safe configuration
- YAML支持
- 基于微服务的架构
- 它包括嵌入式Tomcat服务器
- 更好的Spring Boot安全性
- Admin Support
- Logging files
- Spring Applications
Spring Boot的最低系统要求是什么?
Java最新版本
Spring Boot 2.X将不再支持Java 7或更低版本,最低要求是Java 8。
- Java 8+
- Spring Framework 5.2.4+
构建工具:
- Gradle 5.x和6.x以上版本(也支持4.4 +)
- Maven 3.3及以上
嵌入式servlet容器:
- Servlet 3.x +兼容容器
- Tomcat 9.0- Servlet v4.0 +
- Jetty9.4-servletv3.1
- Underflow 2.0-servletv 4.0
什么是Spring Boot关键组件?
- Spring Boot Auto Configuration
- Spring Boot CLI
- Spring Boot Starter POMs
- Spring Boot Actuator
Spring boot模块的启动器有哪些依赖性?
Spring Boot模块提供了许多启动器依赖项。这里,一些最常用的是:
- Data JPA Starter
- Test starter
- Security Starter
- Web starter
- Web Services Starter
- Mail starter
- Thymeleaf starter
什么是Spring Boot Actuator?
Actuator是Spring Boot的子项目。它提供了多个端点来监视和管理您的应用程序。它通过提供内置端点来实现,但是您也可以构建自己的端点。还提供了访问生产就绪REST点并从Web提取所有信息的简便方法。通过Actuator,只需极少的配置即可轻松地将您的应用程序与任何外部系统集成。
如何启用Spring Boot Actuator?
在现有的POM.XML文件中检查以下Maven依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
什么是Spring Boot CLI?
Spring Boot CLI是用于Spring Boot应用程序的命令行界面工具。它使用Groovy脚本,它是用于创建/管理应用程序的强大工具。
列出Spring Boot CLI命令?
- -run command
- -test command
- -grab command
- -jar command
- -war command
- -install command
- -uninstall command
- –init command
- -shell command
- -help command
常见的Spring Boot注释是什么?
一些常见的Spring Boot注释是:
@SpringBootApplication
- @SpringBootconfiguration
- @ComponentScan
- @enableAutoconfiguration
@importAutoConfiguration
@AutoConfigureBefore或After或Order
条件注释
- @ConditionalOnBean和@ConditionalOnMissingBean
- @ConditionalOnNotWebApplication和@ConditionalOnWebApplication
- @ConditionalOnProperty
- @ConditionalOnResource
- @ ConditionalOnExpression
- @ConditionalOnCloudPlatform
最常用的Spring Actuator End Points是什么?
/beans: 返回应用程序中所有spring bean的完整列表
/dump执行线程Dump
/env返回当前环境中的属性列表
/health:有关您的应用程序健康信息
/trace跟踪日志
/info 显示任意应用程序信息
/auditevents审计当前应用程序中的事件信息
/mappings显示所有@RequestMapping路径的列表。
/metrics显示指标信息,例如:JVM,系统CPU,openfiles
Spring Boot中Relaxed Binding的用途是什么?
Spring Boot使用一些宽松的规则将环境属性绑定到@configuartionproperties bean,因此环境属性名称和bean属性名称之间不需要完全匹配。
如何在Spring Boot中添加自定义JS代码?
在Spring Boot中,首先在resources文件夹下创建一个名为static的文件夹。您可以将静态内容放入该文件夹。
例如,路径interviewgigapp.js将资源\static\JS\interviewgigapp.js
您可以使用以下代码引用它
<script src =”/js/interviewgigapp.js”> </script>
您能解释一下Spring Boot中的自动配置吗?
自动配置是一项重要功能,它可以基于类路径上的依赖关系(例如jar,bean,属性等)自动配置应用程序,而无需开发人员进行任何操作。Spring Boot自动配置会尝试根据添加的jar依赖关系自动配置Spring应用程序。
您能解释一下如何注册自定义自动配置吗?
要注册自动配置类,我们必须在META-INF/spring.factories文件中的EnableAutoConfiguration键下列出其全限定名称:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.zthinker.autoconfigure.CustomAutoConfiguration
如果我们使用Maven构建项目,则应将该文件放置在资源/ META-INF目录中,该目录最终将在打包阶段中提到的位置。
嵌入式容器和WAR有什么区别?
您可以在命令提示符下将JAR文件作为JAR文件运行spring boot应用程序,而无需设置Web服务器。但是要运行WAR文件,您需要设置一个具有servlet容器的Web服务器,例如Tomcat,underflow或Jetty,然后在其中部署WAR文件。
为什么我们使用Spring Boot Maven插件?
它是Spring Boot团队构建的Maven插件,可简化应用程序的打包。它提供了一些命令,使您可以将代码打包为半开或运行应用程序。该插件提供了使用Spring Boot应用程序的几个目标:
spring-boot:repackage: 创建一个可自动执行的jar或war文件。它可以替换常规工件,或者可以使用单独的分类器附加到构建生命周期。
spring-boot:run: 运行带有多个选项的Spring Boot应用程序以将参数传递给它。
spring-boot:启动和停止: 将您的Spring Boot应用程序集成到集成测试阶段,以便该应用程序在启动之前启动。
spring-boot:build-info: 生成供执行器使用的构建信息。
说明,如何在Spring Boot中启用HTTP / 2支持?
将以下属性添加到属性(或.yml)文件中:
server.http2.enabled = true。
什么是Spring Boot Initilizr?
这是一个Spring Boot工具,可以非常轻松地引导Boot或Spring Applications。
什么是Spring Boot启动器?
入门程序仅仅是Gradle或Maven模块,其唯一目的是提供所有必要的依赖关系以“入门”特定功能。Spring Boot Starters使引导过程变得更加轻松和快捷。启动器为您带来了必需的Maven依赖关系以及一些预定义的配置位。
Spring Boot的优点是什么?
- Spring Boot的主要目的是降低LOC。
- 它提供了许多默认配置,有助于更快地引导Spring应用程序。
- 它主要用于创建 stand loan applications。
- 不需要XML配置
- 易于创建Spring应用程序。
- 它带有嵌入式TOMCAT或Jetty服务器
- 它提供了很多插件。
- 它提供了CLI应用程序。
Spring Boot依赖管理的用途是什么?
它用于管理依赖关系并自动配置,而无需您为任何依赖关系指定版本。当我们更新Spring Boot版本时,Spring将以一致的方式自动升级所有依赖项。
Thymeleaf的用途是什么?
Thymeleaf是用于创建Web应用程序的基于Java的库之一。它提供了在Web应用程序中提供XHTML/HTML5的支持。它是spring框架的强大模板处理引擎。
Spring Boot Devtools有什么用?
它提供了非常有用的工具集合,极大地改善了开发经验。如自动保存等。
Spring Data JPA的用途是什么?
Spring Data JPA使实现基于JPA的存储库和构建使用数据访问技术的Spring供电的应用程序变得容易。
Spring Boot中的H2是什么?
H2是完全用Java创建的开源RDBM(理性数据库管理)系统。它可以嵌入在Java应用程序中,也可以在客户端服务器模式下运行。或它是可以在内存中运行的轻量级数据库。
什么是@SpringBootApplication批注?
@SpringBootApplication 批注是以下三个spring批注的组合,并且仅用一行代码即可提供全部三个功能。
@configuration或@springBootConfiguration(在版本2中): 指示类提供了Spring Boot应用程序@configuration。
@componentScan: 它与Spring XMLs context:component-scan元素并行提供支持。
@enableAutoconfiguration: 用于启用spring boot的自动配置功能。
解释一下,如何使用Spring Boot控制日志记录?
我们可以通过在application.properties文件中指定日志级别来控制Spring Boot的日志记录。当该文件存在于类路径中时,Spring Boot会加载该文件,并且可用于配置Spring Boot和应用程序代码。
Spring Boot使用Commons Logging进行所有内部日志记录,您可以通过在application.properties文件中添加以下行来更改日志级别:
logging.level.org.springframework =debug
logging.level.com.demo =info
为什么选择Spring Boot?
- Spring Boot是基于Java的应用程序框架。
- 它避免了编写大量样板代码,注释和XML配置。
- 为了减少开发,单元测试和集成测试的时间,请提供一些默认设置。
- 自动配置,无需手动配置。
- 易于使用,但功能强大的数据库事务管理功能
- 为了提高生产力
- 简化依赖管理
- 它包括嵌入式servlet容器。
- 它允许admin支持
您能解释一下如何启用调试日志记录吗?
首先,使用–debug开关启动应用程序。
接下来,在application.properties文件中设置logging.level.root = debug属性。
最后,在提供的日志配置文件中设置root logger的日志记录级别。
您能解释一下,如何运行和停止spring boot可执行jar?
- 打开 cmd或shell窗口,并使用java -jar,如下所示
- java -jar my project-0.0.1-SNAPSHOT.jar
- 要停止使用ctrl + C