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的问题是需要的配置量。
Spring Boot通过自动配置和入门项目的组合解决了这个问题。 Spring Boot还提供了一些非功能性功能,可以更快地构建生产就绪应用程序。
有关代码示例的完整答案,请参阅 - Spring Boot vs Spring vs Spring MVC
问:什么是自动配置?
Spring和Spring MVC的问题是需要的配置量。
我们能为此带来更多智慧吗? 将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的依赖关系
以下屏幕截图显示了添加到我们的应用程序中的不同依赖项
依赖关系可分为:
春天 - 核心,豆类,背景,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中
重启应用程序。
你们都是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上的现有依赖项并添加它们。
问:如何使用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启动器
确切的依赖关系如下所示:
一些提示:
内存数据库仅在执行应用程序期间处于活动状态。 这是学习框架的有效方式。
这不是您希望现实世界应用程序的行为方式。
我们将在“我们如何连接到外部数据库?”这一问题的答案中解释如何连接到您选择的数据库。
问:如何在没有任何配置的情况下选择Hibernate作为JPA的默认实现?
由于Spring Boot自动配置。
这是我们添加的依赖项
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
第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并重新启动服务器
问:你能否在事务管理中为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依赖:
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文件中
一旦此依赖项位于类路径中,开发人员就可以使用多个端点。
Q5)没有服务器重启的情况下,在Spring启动时重新加载更改的方法是什么?
回答:
如果没有使用开发工具启动服务器,则会在spring boot中重新加载任何更改。
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启动批处理提供了一个可以重用的功能,对于进行批处理至关重要。 它还提供服务和功能,有助于优化和分区技术,从而实现高容量和高性能的批处理作业。
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中引用此文件,如: