JavaWeb编程面试题——Spring Boot

这篇具有很好参考价值的文章主要介绍了JavaWeb编程面试题——Spring Boot。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

面试题==知识点,这里所记录的面试题并不针对于面试者,而是将这些面试题作为技能知识点来看待。不以刷题进大厂为目的,而是以学习为目的。这里的知识点会持续更新,目录也会随时进行调整。

关注公众号:编程火箭车。在【粉丝福利】中点击【面题大全】,其中的Java面试题在线实时更新、查看。

一、面试题导航

点这里进入JavaWeb编程面试题——导航

面试题持续更新中......

二、面试题目

1.什么是SpringBoot?

SpringBoot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。

2.谈谈你对SpringBoot的理解?

SpringBoot 主要用来简化使用 Spring 的难度和繁重的 XML 配置,它是 Spring 组件的一站式解决方案,采取了习惯优于配置的方法。通过 .properties 或者 .yml 文件替代了 Spring 繁杂的 XML 配置文件,同时支持 @ImportResource 注解加载 XML 配置。SpringBoot 还提供了嵌入式 HTTP 服务器、命令行接口工具、多种插件等等,使得应用程序的测试和开发简单起来。

3.为什么需要SpringBoot?

SpringBoot 优点非常多,如:独立运行、简化配置、自动配置和无需部署 war 文件等等。

4.SpringBoot的配置文件有哪几种格式?

主要有 .properties.yml 格式,它们的区别主要是书写格式不同。另外 .yml 格式不支持 @PropertySource 注解导入配置。

5.SpringBoot支持哪些日志框架?推荐和默认的日志框架是哪个?

SpringBoot 支持 Java Util LoggingLog4j2Logback 作为日志框架。如果使用 Starters 启动器,SpringBoot 将使用 Logback 作为默认日志框架,推荐的日志框架是 Log4j2。但是不管是那种日志框架他都支持将配置文件输出到控制台或者文件中。

6.什么是YAML?

YAML 是一种可读的数据序列化语言,它通常用于配置文件。与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分层配置数据。

7.SpringBoot支持哪些嵌入式Web容器?

SpringBoot 支持的嵌入式 servlet 容器有:TomcatJettyUndertow

8.SpringBoot需要独立的容器运行吗?

可以不需要,内置了 Tomcat/Jetty 等容器。

9.你如何理解SpringBoot配置加载顺序?

SpringBoot 配置加载顺序优先级是:properties 文件、YAML 文件、系统环境变量、命令行参数。

10.SpringBoot可以兼容老Spring项目吗?

可以兼容,使用 @ImportResource 注解导入老 Spring 项目配置文件。

11.说出SpringBoot的优点?

  • 简化开发,提高整体生产力。

  • SpringBoot 使用 JavaConfig 有助于避免使用 XML,同时避免大量的 Maven 导入和各种版本冲突。

  • SpringBoot 引导的应用程序可以很容易地与 Spring 生态系统集成,如Spring JDBCSpring ORMSpring DataSpring Security 等等。

  • SpringBoot 应用程序提供嵌入式 HTTP 服务器,如 TomcatJetty,可以轻松地开发和测试 Web 应用程序。

  • SpringBoot 提供命令行接口工具,用于开发和测试应用程序。

  • SpringBoot 提供了多种插件,可以使用内置 Maven 工具开发和测试应用程序。

  • SpringBoot 没有单独的 Web 服务器需要,这意味着不再需要启动 Tomcat 或其他任何东西。

12.如何在自定义端口上运行SpringBoot应用程序?

可以在 application.properties 配置文件中指定端口,比如 server.port=8090

13.如何重新加载SpringBoot上的更改,而无需重新启动服务器?

这可以使用 DEV 工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式 Tomcat 将重新启动。SpringBoot 有一个开发工具 DevTools 模块,它有助于提高开发人员的生产力。Java 开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新加载 SpringBoot 上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。SpringBoot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。

DevTools 模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供 H2 数据库控制台以更好地测试应用程序。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
	<optional>true</optional>
</dependency>

14.如何使用SpringBoot实现异常处理?

Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法。我们通过实现一个 ControlerAdvice 类,来处理控制器类抛出的所有异常。

15.SpringBoot与SpringCloud区别?

SpringBoot 是快速开发的 Spring 框架,SpringCloud 是完整的微服务框架,SpringCloud 依赖于 SpringBoot。

16.SpringBoot支持什么前端模板?

thymeleaffreemarkerjsp,官方不推荐 jsp 会有限制。

17.开启SpringBoot特性有哪几种方式?

  • 继承 spring-boot-starter-parent 项目

  • 导入 spring-boot-dependencies 项目依赖

18.SpringBoot中Async异步调用方法?

在 SpringBoot 中使用异步调用是很简单的,只需要在方法上使用 @Async 注解即可实现方法的异步调用。

注意:需要在启动类加入 @EnableAsync 使异步调用 @Async 注解生效。

19.比较一下Spring Security和Shiro各自的优缺点?

由于 SpringBoot 官方提供了大量的非常方便的开箱即用的 Starter,包括 Spring Security 的 Starter,使得在 SpringBoot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果是 SpringBoot 项目,一般选择 Spring Security。当然这只是一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。Shiro 和 Spring Security 相比,主要有如下一些特点:

  • Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级的安全管理框架;

  • Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单;

  • Spring Security 功能强大;Shiro 功能简单;

20.SpringBoot事务的使用?

SpringBoot 的事务很简单,首先使用注解 @EnableTransactionManagement 开启事务之后,然后在 Service 方法上添加注解 @Transactional 便可。

21.SpringBoot自动配置原理是什么?

SpringBoot 项目的启动注解是:@SpringBootApplication,其实它就是由下面三个注解组成的:

  • @Configuration

  • @ComponentScan

  • @EnableAutoConfiguration

其中 @EnableAutoConfiguration 是实现自动配置的入口,该注解又通过 @Import 注解导入了AutoConfigurationImportSelector,在该类中加载 META-INF/spring.factories 的配置信息。然后筛选出以 EnableAutoConfiguration 为 key 的数据,加载到 IOC 容器中,实现自动配置功能。

22.SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是 @SpringBootApplication,它也是 SpringBoot 的核心注解,主要组合包含了以下3个注解:

  • @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

  • @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exclude{DataSourceAutoConfiguration.class})

  • @ComponentScan:Spring 组件扫描。

23.spring-boot-starter-parent有什么用?

新创建一个 SpringBoot 项目,默认都是有 parent 的,这个 parent 就是 spring-boot-starter-parentspring-boot-starter-parent 主要有如下作用:

  • 定义了 Java 编译版本为1.8。

  • 使用 UTF-8 格式编码。

  • 继承自 spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号。

  • 执行打包操作的配置。

  • 自动化的资源过滤。

  • 自动化的插件配置。

  • 针对 application.propertiesapplication.yml 的资源过滤,包括通过 profile 定义的不同环境的配置文件,例如 application-dev.propertiesapplication-dev.yml

总结就是打包用的。

24.SpringBoot、SpringMVC和Spring有什么区别?

  • Spring 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。

  • SpringMVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServletMoudlAndViewViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。

  • Spring 和 SpringMVC 的问题在于需要配置大量的参数。

SpringBoot 通过一个自动配置和启动的项来目解决这个问题。为了更快的构建产品就绪应用程序,SpringBoot 提供了一些非功能性特征。

25.SpringBoot中如何解决跨域问题?

跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORSCross-origin resource sharing) 来解决跨域问题。这种解决方案并非 Spring Boot 特有的,在传统的 SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS,现在可以通过实现 WebMvcConfigurer 接口然后重写 addCorsMappings 方法解决跨域问题。

26.为什么我们需要spring-boot-maven-plugin?

spring-boot-maven-plugin 提供了一些像 jar 一样打包或者运行应用程序的命令。

  • spring-boot:run 运行你的 SpringBoot 应用程序。

  • spring-boot:repackage 重新打包你的 jar 包或者是 war 包使其可执行。

  • spring-boot:start / spring-boot:stop 管理 SpringBoot 应用程序的生命周期(也可以说是为了集成测试)。

  • spring-boot:build-info 生成执行器可以使用的构造信息。

27.SpringBoot配置加载可以通过哪些方式定义?

  • propertiest文件

  • 命令行参数

  • YAML文件

  • 系统环境变量


关注公众号:编程火箭车
我们定期发布编程相关的文章、资讯、活动等内容。帮助编程爱好者、初学者或初级程序员快速入门、打牢基础。欢迎大家关注,和我们一起探索编程的精彩世界。文章来源地址https://www.toymoban.com/news/detail-464591.html

到了这里,关于JavaWeb编程面试题——Spring Boot的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot 基础知识点1 (含面试题1)

    Spring Boot 是一款基于 Spring 框架的开源应用程序开发工具,它旨在简化 Spring 应用程序的配置和开发过程。Spring Boot 提供了一种简单的方式来创建可独立运行的、生产级别的应用程序,并在需要时进行部署。Spring Boot 在微服务架构和云计算环境下得到了广泛应用。 本次主要是

    2024年01月25日
    浏览(40)
  • C#知识点、常见面试题

    https://github.com/JackYan666/CSharpCode/blob/main/CSharpCode.cs 1.For循环删除集合元素可能漏删:从后面往前删除 2.Foreach不能直接修改集合元素:用递归的思想,删除完了的集合重新遍历 3.闭包问题:for循环存在闭包,可以通过使用临时变量解决;Task存在闭包问题可以通过wait解决,可以通

    2024年02月10日
    浏览(34)
  • javaWeb差缺补漏(二)【针对于自身知识点掌握情况】

    1、编写数据库建立连接工具类 2、编写操作数据库的类,使用commons-dbutils.jar 3、编写查询返回一个javaBean的sql 4、查询返回多个对象 5、查询返回单个值 前后端联调: 跳转到注册页面: req.getRequestDispatcher(“/pages/user/register.html”).forward(req,resp); JSP的作用是:代理Servlet程序回传

    2024年02月11日
    浏览(33)
  • 2023JAVA 架构师面试 130 题含答案:JVM+spring+ 分布式 + 并发编程》...

    此文包含 Java 面试的各个方面,史上最全,苦心整理最全 Java 面试题目整理包括基+JVM+算法+数据库优化+算法数据结构+分布式+并发编程+缓存等,使用层面广,知识量大,涉及你的知识盲点。要想在面试者中出类拔萃就要比人付出更多的努力,共勉! java 高频面试题如下: j

    2024年02月15日
    浏览(44)
  • 定制自己的 AI 角色CustomChar;AI知识点和面试题;提高llama 3 的微调速度Unsloth

    ✨ 1: CustomChar 允许你创建和定制自己的 AI 角色 CustomChar 是一个开源项目,它允许你创建和定制自己的 AI 角色。无论是游戏中的角色,还是个人的虚拟助手(比如电脑上的 JARVIS),甚至是在线教育体验中的虚拟朋友或老师,CustomChar 都能让这些角色变得生动而有趣。 地址:

    2024年04月24日
    浏览(45)
  • 【JavaWeb 专题】15个最经典的JavaWeb面试题

    Java Web,是用Java技术来解决相关web互联网领域的技术栈。今天我们来总结一下经常在面试中遇到的经典面试题。 HTTP 协议有 HTTP/1.0 版本和 HTTP/1.1 版本。 HTTP1.1 默认保持长连接(HTTP persistent connection,也翻译为持久连接),数据传输完成了保持 TCP 连接不断开(不发 RST 包、不

    2024年02月11日
    浏览(37)
  • Java面试知识点(全)- Java面试基础部分一

    Java面试知识点(全)https://nanxiang.blog.csdn.net/article/details/130640392 语法基础 封装 利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联

    2024年02月05日
    浏览(46)
  • 【面试题】C#面试常见基础知识点整理(附示例代码)

    大家好,这是自己自行整理的c#面试题,方便自己学习的同时分享出来。 相同点 抽象方法和虚方法都可以供派生类重写, 派生类重写父类的方法都要使用override来声明。 不同点 虚方法必须有方法名称和方法实现;抽象方法是只有方法名称,没有方法实现; 虚方法在派生

    2024年02月02日
    浏览(55)
  • 课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管理平台的添加员工档案信息的操作题)

    这篇文章是大学课程《JavaWeb基础框架程序设计》考试题目的内容,包括了原题和答案。题目只包括了三道编程题,分值为30分、30分和40分,这篇文章继上一篇(课程《JavaWeb基础框架程序设计》考试题上篇——基础应用题(计算应用、水仙花数)),介绍40分的那题,以及代码

    2024年02月04日
    浏览(62)
  • Tomcat面试题+http面试题+Nginx面试题+常见面试题

    1、Tomcat的缺省端口是多少?怎么修改? 答:缺省端口是8080,若要修改,可以进入Tomcat的安装目录下找到conf目录下的server.xml文件,找到该文件中的Connector字段中的port。 2、Tomcat有哪几种connector运行模式(服务的请求方式)? 答:三种。修改它的运行模式需要在主配置文件中

    2023年04月10日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包