SpringBoot 面向面试学习(2024.03.23更新)

导语

在网上找了很多 SpringBoot 相关的教程,要么是针对初学者面向实战入门的视频,要么基于面试但存在收费或不全面的问题……因此参考网上博客特此总结了一些可能常见的面试题,循序渐进,以问题为导向,以面试为场景进行学习/复习。

JavaGuide 提供的Spring 常见面试题总结可以去看,里面把 IoC 、AoP 、MVC 、事务、Spring Data JPA、 Spring Security 都讲了。这部分我看的是 JavaGuide老师的免费内容,我就不多此一举地进行总结了,大家有需要可以直接去看,写得蛮好的。


面试题

1、简单介绍一下 Spring,有什么缺点?

Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。

一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发,比如说 Spring 支持 IoC(Inversion of Control:控制反转) 和 AOP(Aspect-Oriented Programming:面向切面编程)、可以很方便地对数据库进行访问、可以很方便地集成第三方组件(电子邮件,任务,调度,缓存等等)、对单元测试支持比较好、支持 RESTful Java 应用程序的开发。

核心思想是 IoC 和 AoP,非常重要!!(这个看Spring 常见面试题总结

缺点:

  1. 集成复杂:比如我们想要使用 MyBatis 或者 MongoDB的时候,我们要做很多工作不管使用配置方式也好还是使用注解方式。
  2. 配置复杂:在使用 Spring 的时候,我们更多可能是选择 XML 进行配置,但目前这种配置方式已不在流行。
  3. 构建和部署复杂:启动 Spring 的 IOC 容器,是完全要依赖于第三方的 web 服务器。自身不能启动的。

2、 Spring 和 SpringBoot 和 Spring MVC 有什么区别?

下面是 Spring 的模块图:

Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。是很多模块的集合。

Spring 包含了多个功能模块(上面刚刚提到过),其中最重要的是 Spring-Core(主要提供 IoC 依赖注入功能的支持) 模块, Spring 中的其他模块(比如 Spring MVC)的功能实现基本都需要依赖于该模块。

Spring MVC 是 Spring 中的一个很重要的模块,主要赋予 Spring 快速构建 MVC 架构的 Web 程序的能力。MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。

使用 Spring 进行开发各种配置过于麻烦比如开启某些 Spring 特性时,需要用 XML 或 Java 进行显式配置。于是,Spring Boot 诞生了!

Spring 旨在简化 J2EE 企业应用程序开发。Spring Boot本质上是一个脚手架,旨在简化 Spring 开发(减少配置文件,开箱即用!)。

Spring Boot 只是简化了配置,如果你需要构建 MVC 架构的 Web 程序,你还是需要使用 Spring MVC 作为 MVC 框架,只是说 Spring Boot 帮你简化了 Spring MVC 的很多配置,真正做到开箱即用!

🤐 关于什么是“脚手架”,StackOverflow 的高赞回答:

Scaffolding is a meta-programming method of building database-backed software applications. It is a technique supported by some model-view-controller frameworks, in which the programmer may write a specification that describes how the application database may be used. The compiler uses this specification to generate code that the application can use to create, read, update and delete database entries, effectively treating the template as a "scaffold" on which to build a more powerful application.

翻译过来就是:

脚手架是一种构建数据库支持的软件应用程序的元编程方法。 它是一些模型-视图-控制器(model-view-controller)框架支持的技术,其中程序员可以编写描述如何使用应用程序数据库的规范。 (脚手架的)编译器使用此规范来生成应用程序可用于创建、读取、更新和删除数据库条目的代码,从而有效地将模板视为构建更强大的应用程序的“脚手架”。

posted @ 2024-03-23 12:06  无发可说  阅读(82)  评论(0编辑  收藏  举报