SpringBoot面试题

Spring Boot是微服务的最佳Java框架。 我们建议您成为Spring Boot的专家!

问:Spring Boot vs Spring MVC vs Spring - 他们如何比较?

Spring框架


Spring Framework最重要的特性是依赖注入。 所有Spring模块的核心是依赖注入或IOC控制反转。


正确使用DI或IOC时,我们可以开发松散耦合的应用程序。 松散耦合的应用程序可以轻松进行单元测试。

Spring MVC


Spring MVC Framework提供了开发Web应用程序的分离方式。 使用Dispatcher Servlet,ModelAndView和View Resolver等简单概念,可以轻松开发Web应用程序。


春季启动

Spring和Spring MVC的问题是需要的配置量。

/WEB-INF/views/ .jsp  

Spring Boot通过自动配置和入门项目的组合解决了这个问题。 Spring Boot还提供了一些非功能性功能,可以更快地构建生产就绪应用程序。

有关代码示例的完整答案,请参阅 - Spring Boot vs Spring vs Spring MVC

问:什么是自动配置?

Spring和Spring MVC的问题是需要的配置量。

  /WEB-INF/views/ .jsp  

我们能为此带来更多智慧吗? 将spring mvc jar添加到应用程序中时,我们可以自动自动配置某些bean吗?


Spring Boot查看a)CLASSPATH上可用的框架b)应用程序的现有配置。 基于这些,Spring Boot提供了使用这些框架配置应用程序所需的基本配置。 这称为自动配置。


有关代码示例的完整答案,请参阅自动配置 。

问:什么是Spring Boot Starter项目?


启动器是一组方便的依赖关系描述符,您可以在应用程序中包含这些描述符。 您可以获得所需的所有Spring和相关技术的一站式服务,而无需搜索示例代码并复制粘贴的依赖描述符。


例如,如果您想开始使用Spring和JPA进行数据库访问,只需在项目中包含spring-boot-starter-data-jpa依赖项,就可以了。

问:你能用一个例子解释一下有关入门者的更多信息吗?

让我们考虑一个示例启动器 - Spring Boot Starter Web。

如果您想开发Web应用程序或应用程序来公开休息服务,Spring Boot Start Web是首选。 让我们使用Spring Initializr使用Spring Boot Starter Web创建一个快速项目。

Spring Boot Starter Web的依赖关系

  org.springframework.boot spring-boot-starter-web  

以下屏幕截图显示了添加到我们的应用程序中的不同依赖项

 

依赖关系可分为:

春天 - 核心,豆类,背景,aop
    Web MVC - (Spring MVC)
    杰克逊 - 用于JSON绑定
    验证 - Hibernate验证器,验证API
    嵌入式Servlet容器 - Tomcat
    记录 - logback,slf4j
任何典型的Web应用程序都将使用所有这些依赖项。 Spring Boot Starter Web预装了这些。


作为开发人员,我不需要担心这些依赖项或它们的兼容版本。


问:Spring Boot提供的其他Starter Project Options是什么?

Spring Boot还提供其他初始项目,包括开发特定类型应用程序的典型依赖项

spring-boot-starter-web-services - SOAP Web服务
    spring-boot-starter-web - Web和RESTful应用程序
    spring-boot-starter-test - 单元测试和集成测试
    spring-boot-starter-jdbc - 传统的JDBC
    spring-boot-starter-hateoas - 为您的服务添加HATEOAS功能
    spring-boot-starter-security - 使用Spring Security进行身份验证和授权
    spring-boot-starter-data-jpa - 带有Hibernate的Spring Data JPA
    spring-boot-starter-data-rest - 使用Spring Data REST公开简单REST服务
问:Spring如何在短时间内创建生产就绪应用程序?

Spring Boot旨在快速实现生产就绪应用程序。 Spring Boot提供了一些开箱即用的非功能性功能,如缓存,日志记录,监控和嵌入式服务器。

spring-boot-starter-actuator - 使用开箱即用的监控和跟踪等高级功能
    spring-boot-starter-undertow,spring-boot-starter-jetty,spring-boot-starter-tomcat - 选择您特定的嵌入式Servlet容器
    spring-boot-starter-logging - 使用logback进行日志记录
    spring-boot-starter-cache - 启用Spring Framework的缓存支持
Spring Boot 2和Spring 5的最低基准Java版本是什么?

Spring Boot 2.0需要Java 8或更高版本。 不再支持Java 6和7。

推荐阅读

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes
问:创建Spring Boot项目最简单的方法是什么?

Spring Initializr http://start.spring.io/是引导Spring Boot项目的绝佳工具。

 

如上图所示,必须执行以下步骤

启动Spring Initializr并选择以下内容
    选择com.in28minutes.springboot作为Group
        选择student-services作为神器
        选择以下依赖项
        卷筒纸
            执行器
            DevTools
        
    
    单击“生成项目”。
    将项目导入Eclipse。 文件 - >导入 - >现有的Maven项目。
问:Spring Initializr是创建Spring Boot项目的唯一方法吗?

没有。

Spring Initializr可以轻松创建Spring Boot项目。 但您可以设置maven项目并添加正确的依赖项以开始。

在我们的Spring课程中,我们使用2种方法来创建项目。

第一个是start.spring.io。
    另一个 - 手动设置项目在标题为“基本Web应用程序”的部分中使用
手动设置maven项目

以下是重要步骤:

在Eclipse中,使用File - > New Maven Project创建一个新项目。
    添加依赖项。
    添加maven插件!
    添加Spring Boot Application类
你准备好了!

问:为什么我们需要spring-boot-maven-plugin?

spring-boot-maven-plugin提供了一些命令,使您可以将代码打包为jar或运行应用程序

spring-boot:run运行Spring Boot应用程序。
    spring-boot:重新打包重新打包你的jar / war是可执行的。
    spring-boot:start和spring-boot:停止管理Spring Boot应用程序的生命周期(即集成测试)。
    spring-boot:build-info生成可由执行器使用的构建信息。
问:如何使用Spring Boot启用应用程序的自动重新加载?

使用Spring Boot开发人员工具。

将Spring Boot Developer Tools添加到项目中非常简单。

将此依赖项添加到Spring Boot Project pom.xml中

  org.springframework.boot spring-boot-devtools runtime  

重启应用程序。

你们都是Set。

如果您还想自动加载页面,可以查看LiveReload

http://www.logicbig.com/tutorials/spring-framework/spring-boot/boot-live-reload/。
在我的试验中,我们发现了LiveReload越野车。 如果您有更好的使用经验,请告诉我们。

问:什么和为什么嵌入式服务器?

考虑一下在虚拟机上部署应用程序(通常)所需的内容。

第1步:安装Java
    第2步:安装Web /应用程序服务器(Tomcat / Websphere / Weblogic等)
    第3步:部署应用程序之战
如果我们想简化这个怎么办?

如何使服务器成为应用程序的一部分?


您只需要安装了Java的虚拟机,就可以直接在虚拟机上部署应用程序。 不是很酷吗?


这个想法是嵌入式服务器的起源。

当我们创建可部署的应用程序时,我们会将服务器(例如,tomcat)嵌入到deployable中。


例如,对于Spring Boot应用程序,您可以生成包含嵌入式Tomcat的应用程序jar。 您可以将Web应用程序作为普通Java应用程序运行!


嵌入式服务器是指我们的可部署单元包含服务器的二进制文件(例如,tomcat.jar)。

问:如何使用Spring Boot添加自定义JS代码?

在资源文件夹下创建名为static的文件夹。 您可以将静态内容放在该文件夹中。

对于您的示例,myapp.js的路径是resources \ static \ js \ myapp.js

你可以在jsp中使用它来引用它

  

错误:HAL浏览器给我未经授权的错误 - 访问此资源需要完全身份验证。 我该如何解决?

 { "timestamp": 1488656019562, "status": 401, "error": "Unauthorized", "message": "Full authentication is required to access this resource.", "path": "/beans" } 

两种选择

选项1:禁用安全性

application.properties

 management.security.enabled: FALSE 

选项2:在日志中搜索密码并将其传递到请求标头中

问:什么是Spring Data?

来自http://projects.spring.io/spring-data/


Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特​​殊特性。它使数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得简单易用。


为了简化,Spring Data提供了您可以使用的抽象(接口),而不管底层数据源。

一个例子如下所示

 interface TodoRepository extends CrudRepository < Todo , Long > { 

您可以定义一个简单的存储库,并使用它从数据库中插入,更新,删除和检索todo实体 - 无需编写大量代码。

问:什么是Spring Data REST?

Spring Data REST可用于在Spring Data存储库周围公开HATEOAS RESTful资源。

使用JPA的示例如下所示

 @RepositoryRestResource ( collectionResourceRel = "todos" , path = "todos" ) public interface TodoRepository extends PagingAndSortingRepository < Todo , Long > { 

在不编写大量代码的情况下,我们可以在Spring Data Repositories中公开RESTful API。

下面显示了一些REST服务示例:

POST

URL:http:// localhost:8080 / todos
    使用标题:内容类型:application / json
    请求内容
 { "user": "Jill", "desc": "Learn Hibernate", "done": false } 

响应内容

 { "user": "Jill", "desc": "Learn Hibernate", "done": false, "_links": { "self": { "href": "http://localhost:8080/todos/1" }, "todo": { "href": "http://localhost:8080/todos/1" } } } 

响应包含新创建的资源的href。

问:path =“users”,collectionResourceRel =“users”如何使用Spring Data Rest?

 @RepositoryRestResource(collectionResourceRel = "users", path = "users") public interface UserRestRepository extends PagingAndSortingRepository 

path - 要在其下导出此资源的路径段。
    collectionResourceRel - 生成指向集合资源的链接时使用的rel值。 这在生成HATEOAS链接时使用。
问:当Spring Boot应用程序“作为Java应用程序运行”时,后台会发生什么?

如果您使用的是Eclipse IDE,Eclipse maven插件可确保只要您添加依赖项或对类文件进行更改,就会在目标文件夹中编译并准备好它! 之后它就像任何其他Java应用程序一样。

当您启动Java应用程序时,弹出启动自动配置魔法就会启动。

它会在看到您正在开发Web应用程序时启动tomcat!
问:我们可以在spring-boot-starter-web中使用jetty而不是tomcat吗?

删除spring-boot-starter-web上的现有依赖项并添加它们。

  org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty  

问:如何使用Spring Boot生成WAR文件?

推荐阅读

https://spring.io/guides/gs/convert-jar-to-war/
这是spring文档的直接链接

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging
问:如何使用Spring Boot部署到其他服务器?

你需要做两个步骤

从项目中产生战争。
    将其部署到您最喜欢的服务器(Websphere或Weblogic或Tomcat或...)。
第1步:本入门指南应该有所帮助 - https://spring.io/guides/gs/convert-jar-to-war/

第2步:取决于您的服务器

问:RequestMapping和GetMapping有什么区别?

RequestMapping是通用的 - 您可以使用注释上的method属性与GET,POST,PUT或任何其他请求方法一起使用。
    GetMapping特定于GET请求方法。 它只是RequestMapping的扩展,以提高清晰度。
问:为什么我们建议不要在实际应用中使用Spring Data Rest?

我们认为Spring Data Rest很适合快速原型设计! 在Big应用程序中使用它时要小心!

使用Spring Data REST,您可以直接将数据库权限公开为REST服务。

在设计RESTful服务时,最佳设计实践表明您的界面应该考虑两个重要的事情

你的领域模型
    你的消费者
使用Spring Data REST,您不会考虑其中任何一个。 您只需将实体公开为REST服务。

这就是为什么我们建议将它用于快速原型设计或项目的初始演变。 对于完全进化的项目来说,这可能不是一个好主意。

问:如何在Spring Initializer中更改项目的包名?

好消息是你可以自定义它。 单击“切换到完整版”链接。 您将能够配置您想要的包名称!

问:在哪里可以找到可在application.properties中配置的完整属性列表?

这是完整的指南

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
问:JPA和Hibernate有什么区别?

短篇故事

JPA是规范/接口
    Hibernate是JPA实现之一
当我们使用JPA时,我们使用javax.persistence包中的注释和接口,而不使用hibernate导入包。

我们建议使用JPA注释,因为我们没有将Hibernate作为实现。 后来(我知道 - <1%Chance),我们可以使用另一个JPA实现。

问:在哪一层,交易的边界应该开始?

我们建议管理服务层中的事务。 业务事务的逻辑在业务/服务层中,您可能希望在该级别强制执行事务管理。

问:使用Spring Boot启动连接到内存数据库H2的JPA应用程序所需的依赖项是什么?

在Spring Boot项目中,只要确保类路径上存在以下依赖项,您就应该能够启动H2控制台。

网络启动器
    H2
    数据jpa启动器
确切的依赖关系如下所示:

  org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime  

一些提示:

内存数据库仅在执行应用程序期间处于活动状态。 这是学习框架的有效方式。
    这不是您希望现实世界应用程序的行为方式。
    我们将在“我们如何连接到外部数据库?”这一问题的答案中解释如何连接到您选择的数据库。
问:如何在没有任何配置的情况下选择Hibernate作为JPA的默认实现?

由于Spring Boot自动配置。

这是我们添加的依赖项

  org.springframework.boot spring-boot-starter-data-jpa  

Starter spring-boot-starter-data-jpa对Hibernate和JPA具有传递依赖性。

当Spring Boot在类路径中看到Hibernate时,它会自动将其配置为默认的JPA实现。

问:指定数据库连接信息在哪里? 它如何知道自动连接到H2?

这就是Spring Boot Autoconfiguration的魔力。

来自https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html


Spring Boot自动配置尝试根据您添加的jar依赖项自动配置Spring应用程序。 例如,如果HSQLDB在您的类路径上,并且您没有手动配置任何数据库连接bean,那么我们将自动配置内存数据库


更多阅读

http://www.springboottutorial.com/spring-boot-auto-configuration
问:我们如何连接到MSSQL或oracle等外部数据库?

让我们考虑其中一个例子 - MySQL

步骤1 - 将mqsql连接器的依赖项添加到pom.xml

  mysql mysql-connector-java  

第2步 - 从pom.xml中删除H2依赖项

或者至少将其范围作为测试

  

第3步 - 设置我的SQL数据库

有关更多信息,请访问https://github.com/in28minutes/jpa-with-hibernate#installing-and-setting-up-mysql
步骤4 - 配置与My SQL Database的连接

配置application.properties

 spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/todo_example spring.datasource.username=todouser spring.datasource.password=YOUR_PASSWORD 

第5步 - 重启,你准备好了!

而已

问:Spring Boot配置的默认h2数据库名称是什么? 为什么默认数据库名称为testdb?

这是列出application.properties中所有默认值的位置

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
寻找下面的财产

 spring.datasource.name=testdb # Name of the datasource. 

如果您正在使用H2内存数据库,这正是Spring Boot用于设置H2数据库的名称。

问:如果H2不在类路径中会发生什么?

你得到这个错误

 Cannot determine embedded database driver class for database type NONE 

将H2添加到pom.xml并重新启动服务器

  com.h2database h2 runtime  

问:你能否在事务管理中为ReadOnly提供一个真实的例子?

当您从数据库中读取内容,用户详细信息或任何其他详细信息时,您希望在事务上设置只读,以便Hibernate不需要检查实体的更改。 这更有效率。
问:使用Spring Boot公开自定义应用程序配置的最佳方法是什么?

@Value的问题在于您可以在整个应用程序中分配配置值。 更好的选择是采用集中式方法。

您可以使用@ConfigurationProperties定义配置组件。

 @Component @ConfigurationProperties("basic") public class BasicConfiguration { private boolean value; private String message; private int number; 

可以在application.properties中配置这些值

 basic.value: true basic.message: Dynamic Message basic.number: 100 

问:Profiles需要什么?

企业应用程序开发很复杂。 您有多个环境

开发
    QA
    阶段
    生产
您希望在每个环境中具有不同的应用程序配置。


配置文件有助于为不同环境提供不同的应用程序配置。


Spring和Spring Boot提供了您可以指定的功能

不同配置文件中各种环境的配置是什么?
    设置特定环境的活动配置文件。
Spring Boot将根据在特定环境中设置的活动配置文件来获取应用程序配置。

问:如何使用配置文件通过Spring Boot配置特定于环境的配置?

简介只是识别环境的关键。

在此示例中,我们将使用两个配置文件

开发
    刺
application.properties中存在默认的应用程序配置。 让我们考虑一个例子。

application.properties

 basic.value= true basic.message= Dynamic Message basic.number= 100 

我们希望为dev配置文件自定义application.properties。 我们需要创建一个名为application-dev.properties的文件,并覆盖我们想要自定义的属性。

application-dev.properties

 basic.message: Dynamic Message in DEV 

同样,您可以配置prod配置文件的属性。

application-prod.properties

 basic.message: Dynamic Message in Prod 

配置文件特定配置后,您需要在环境中设置活动配置文件。

有多种方法可以做到这一点

在VM Arguments中使用-Dspring.profiles.active = prod
    在application.properties中使用spring.profiles.active=prod
*************************

 

 

 

参考:

https://translate.google.com/translate?hl=zh-CN&sl=en&u=https://dzone.com/articles/top-10-spring-boot-interview-questions&prev=search

 

 

在本文中,我们将讨论Spring Boot中的一些前10个面试问题。 如今,这些问题在就业市场上有点棘手和趋势。

1)@SpringBootApplication注释在内部执行什么操作?

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

2)如何在不使用basePackages过滤器的情况下排除任何包?

您可以通过不同的方式过滤任何包。 但Spring Boot为实现这一目标提供了一个棘手的选择,而无需触及组件扫描。 您可以在使用注释@SpringBootApplication时使用exclude属性。 请参阅以下代码段:

 @SpringBootApplication(exclude= {Employee.class}) public 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来控制要排除的自动配置类列表的spring.autoconfigure.exclude   属性。 您可以添加到application.properties中。 并且您可以使用逗号分隔添加多个类。

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

 

4)什么是弹簧执行器? 它的优点是什么?

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

“执行器是一个制造术语,指的是用于移动或控制某物的机械装置。执行器可以通过微小的变化产生大量的运动。”

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

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

5)如何启用/禁用执行器?

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

Maven依赖:

  org.springframework.boot spring-boot-starter-actuator  

 

6)什么是Spring Initializer?

这可能不是一个困难的问题,但面试官总是检查候选人的主题知识。 通常情况下,您不能总是期待您准备的问题。 然而,这几乎是所有时间都是一个非常常见的问题。

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

7)执行器什么是关机?

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

8)这是否可以在Spring启动时更改嵌入式Tomcat服务器的端口?

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

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

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

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

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

祝一切顺利!

 

 

 

 

 

 

***********************************

参考:

https://translate.google.com/translate?hl=zh-CN&sl=en&tl=zh-CN&u=https%3A%2F%2Fwww.educba.com%2Fspring-boot-interview-questions%2F

 

Spring启动面试问题和答案简介

Spring BOOT是一个非常流行的框架,它构建在Spring框架的顶层。 它提出了一种新的开发方法,可以简化Spring应用程序的引导和开发。 在典型的Spring框架中,有许多bean和元配置有多种方式,如XML ,注释和Java配置 。 Spring BOOT避免了所有配置,因此开发人员可以在很短的时间内快速启动新的Spring项目。 Spring BOOT不是解决某些问题的新方法,但它解决了与Spring框架相同的问题,但是配置很少甚至没有。 它遵循一种默认的配置方法。 它有助于减少大量的样板代码和配置,以改进开发,单元测试和集成测试过程。

现在,如果您正在寻找与Spring Boot相关的工作,那么您需要准备Spring Boot面试问题。 确实,每次采访都根据不同的工作档案而有所不同,但仍然要清楚你需要对Spring Boot有一个良好而清晰的知识。 在这里,我们准备了重要的春季采访问题和答案,这将有助于您在面试中取得成功。

以下是在采访中询问的顶级Spring Boot面试问题列表,这些问题分为两部分,如下所示:

 

第1部分 - Spring Boot面试问题(基础)

第一部分介绍了基本的Spring Boot面试问题和答案

Q1)使用Spring引导而不是spring框架有什么好处?

回答: 
下面列出了一些优势点:

Spring引导提供了一种自以为是的配置,从而避免了大量的样板代码和配置。
    它的应用程序可以很容易地集成到Spring生态系统中,如Spring Security,Spring AOP,Spring事务和缓存等。
    它提供了Tomcat等嵌入式HTTP服务器来增强开发过程。
    Spring启动提供了一个命令行界面,即CLI工具,用于开发和测试应用程序,这是一种快速且不那么具有侵入性的工具。
    通过将配置减少到最小或“无配置”方法,Spring引导减少了大量的开发时间,从而提高了生产率。
Q2)什么是@SpringBootApplication注释?

回答: 
在Spring BOOT 1.2之前,使用@Configuration,@ EnableAutoConfiguration,@ ComponentScan等注释是很常见的。 @SpringBootApplication注释等同于之前提到的所有三个注释及其默认属性。 意味着单个注释现在足以支持多个功能,例如启用自动配置和执行bean的组件扫描。

 此类别中的热门课程

编程语言课程40在线课程| 270+小时| 可验证的完成证书| 终身访问
 4.5(1,270个评分)

课程价格 ₹ 19999 ₹113999 查看课程

相关课程

C编程课程 Selenium培训认证

@SpringBootApplication 
公共类MyApp { 
.........。 
}

Q3)解释Spring启动启动POM文件?

回答: 
Starter POM文件实际上包含许多依赖项,因此项目可以在很短的时间内快速启动并运行。 它基本上是依赖描述符的组合,任何人都可以在其应用程序中包含这些依赖描述符,并且所有与项目相关 Starter POM文件还管理项目的传递依赖性。 POM文件结构来自基于Maven的应用程序。 换句话说,创建使用Spring REST创建其他API的项目的开发人员只需要包含相关的启动POM文件,该文件将导入Spring rest应用程序所需的所有依赖项。 现在不再需要框架所需的搜索和配置依赖关系的所有繁琐任务。

让我们转到下一个Spring Boot Interview Questions。

Q4)解释Spring Boot中的执行器?

回答: 
Actuator为Spring启动应用程序提供了生产就绪功能。 生产就绪功能(如应用程序监控,收集指标,了解流量和数据库状态)对于使应用程序保持健康状态非常重要。 使用像库这样的Actuator的一个主要好处是开发人员可以访问生产级工具,而无需实现这些工具中的任何一个。 要为我们的包管理器启用Spring Boot Actuator依赖项,请在下面添加到您的POM文件中

 
org.springframework.boot 
spring-boot-starter-actuator 

一旦此依赖项位于类路径中,开发人员就可以使用多个端点。

Q5)没有服务器重启的情况下,在Spring启动时重新加载更改的方法是什么?

回答: 
如果没有使用开发工具启动服务器,则会在spring boot中重新加载任何更改。

 
org.springframework.boot 
spring-boot-devtools 
true 

Spring引导提供了名为DevTools的模块,可以提高Spring引导开发人员的工作效率。 它可以自动重新启动服务器,从而将更改自动部署到服务器。 这是常见的春季采访问题在采访中提出的问题。 因此,开发人员可以在Spring启动时重新加载他的更改,而无需重新启动服务器。 此程序包仅在开发模式下提供,但不在生产模式下提供。

 

第2部分 - Spring Boot面试问题(高级)

现在让我们来看看高级Spring Boot面试问题。

Q6)在自定义端口上运行Spring启动应用程序的方法是什么?

回答: 
Spring引导中有一个名为application.properties的文件。 可以自定义此文件以引入任何更改,以更改正在运行的Spring引导应用程序的行为。 如果开发人员想要在自定义端口上运行spring boot应用程序,他可以在application.properties文件中指定端口:

server.port = 8080

此条目将确保应用程序将在8080端口上运行。

Q7)在Spring启动中实现Spring批处理的方法是什么?

回答: 
批处理涉及大量的数据记录处理。 Spring启动批处理提供了一个可以重用的功能,对于进行批处理至关重要。 它还提供服务和功能,有助于优化和分区技术,从而实现高容量和高性能的批处理作业。

 
org.springframework.boot 
spring-boot-starter-batch 
true 

POM文件中的上述更改将包括应用程序中必需的包,这些包是在spring boot项目中执行批处理所必需的。

让我们转到下一个Spring Boot Interview Questions

Q8)在Spring启动应用程序中配置日志记录的方法是什么?

回答: 
开发人员可以在application.properties文件中轻松指定日志记录级别: 
Logging.level.spring.framework = Debug 
应用程序属性文件中的这一行将让spring框架记录到调试级别。 
如果开发人员想要将日志放入文件,他可以在应用程序属性中指定logger.file

Logging.file = $ {java.io.tempdirectory} /sample.log

除了上述两种方法之外,开发人员还可以在main / java / resources下创建logback.xml文件,并在文件中指定日志记录配置。 Spring启动会自动选择这个文件。

Q9)包含spring-boot-maven-plugin有什么好处?

回答: 
这是在采访中提出的高级春季采访问题。 spring-boot- maven-plugin提供了一个命令列表,这些命令有助于开发人员将代码打包为jar文件来运行应用程序。 
Spring-boot:运行,它将运行spring boot应用程序。 
Spring-boot:重新打包,它将重新打包jar或war文件 
Spring-boot:构建,生成构建信息 
Spring-boot:启动,停止 - 管理spring boot应用程序的生命周期。

Q10)在Spring启动应用程序中添加自定义JS代码的方法是什么?

回答: 
开发人员可以在resources文件夹下创建名为“static”的文件夹。 然后可以将所有静态内容放入此文件夹中。 
任何JavaScript文件,即test.js都将驻留在/resources/static/js/test.js中 
然后,开发人员可以在JSP中引用此文件,如: 

你可能感兴趣的:(springBoot,面试总结)