当前位置: 首页 > news >正文

【Spring】面试题:Spring,Spring Boot, Spring MVC 的关系以及区别(5)

本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。

博客涉及框架的重要知识点,根据序号学习即可。

有什么不懂的都可以问我,看到消息会回复的,可能会不及时,请见谅!!

基于前面的3小节知识的学习,可能大家对Spring框架还是模糊的认识,所以今天这篇文章简单总结一下这三者的关系:

常见面试题!!!!

1、Spring

(1)简单来说,Spring是一个开发应用框架,是轻量级、一站式、模块化等特征的重要体现,其目的是为了简化企业级应用程序开发

(2)Spring的两大核心思想:IoC和AOP

(3)Spring的主要功能:管理对象,以及对象之间的依赖关系,面向切面编程,数据库事务管理,数据访问,web框架支持等等

(4)Spring具备高度可开放性,并不强制依赖Spring,开发者可以自由选择使用Spring的部分功能,Spring也可以继承第三方框架,比如数据访问框架(Hibernate/JPA),web框架(Struts/JSF)

2、Spring Boot

(1)Spring Boot 是对框架Spring的一个封装,是为了简化Spring应用开发而出现的,中小型企业没有太多成本区研究自己的框架,使用Spring Boot可以更加快速的搭建框架,降低开发成本,让开发人员可以更加专注Spring应用的开发,而无需过多的关注XML配置和一些底层的实现

(2)Spring Boot是一个脚手架,插拔式搭建项目,可以快速的集成其他框架进来。

(3)Spring Boot只是辅助简化项目开发的,让开发变得更加简单。甚至不需要额外的Web服务器,直接生成jar包执行即可。

3、Spring MVC

(1)Spring MVC是Spring的一个子框架,Spring诞生之后,大家觉得很好用,所以就按照MVC模式设计了一个MVC框架(一些用Spring解耦的组件),主要用于开发web应用的网络接口,所以,Spring MVC 是一个Web框架

(2)Spring MVC 是基于Spring进行开发的,天生的与Spring框架集成,可以让我们更简洁的进行Web层开发,支持灵活的URL到页面控制器的映射,提供了强大的约定大于配置式编程支持,非常容易与其他视图框架集成。

4、总结

Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的一个Web框架,而Spring Boot是基于Spring的一套快速开发整合包。

比如一个简单的基于SSM框架的管理系统,整体的框架是SpringBoot搭建的,IoC和DI是Spring提供的,web相关的功能是Spring MVC提供的




欢迎大家来补充及指正~~~~~~~~~~~~~~~~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • flutter集成百度地图定位 ‘BMKLocationManager.h‘ file not found报错
  • 《Learning to Prompt for Vision-Language Models》CoOp论文中文校对版
  • C++_类和对象(下篇)—— 内部类、匿名对象、对象拷贝时的编译器优化
  • Linux进阶 修改文件所在组
  • 【C++二叉树】JZ36 二叉搜索树与双向链表
  • 屏幕录制电脑,推荐使用这些录制方式
  • 【Python报错已解决】 Requests.exceptions.ProxyError: HTTPSConnectionPool
  • Python 实现Excel XLS和XLSX格式相互转换
  • 需要申请 TAC
  • 接口自动化测试框架实战(Pytest+Allure+Excel)
  • Renesas R7FA8D1BH (Cortex®-M85)内部RTC的应用
  • vue 2表格滚动加载
  • 心觉:成功学就像一把刀,有什么作用关键在于使用者(一)
  • STM32G474RE之RTC
  • 《Effective C++》第三版——让自己习惯C++
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【刷算法】求1+2+3+...+n
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Angular 4.x 动态创建组件
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  •  D - 粉碎叛乱F - 其他起义
  • Javascript基础之Array数组API
  • Java编程基础24——递归练习
  • Java应用性能调优
  • JS笔记四:作用域、变量(函数)提升
  • Js基础——数据类型之Null和Undefined
  • leetcode讲解--894. All Possible Full Binary Trees
  • 给第三方使用接口的 URL 签名实现
  • 构建工具 - 收藏集 - 掘金
  • 入门到放弃node系列之Hello Word篇
  • 深度学习中的信息论知识详解
  • 使用agvtool更改app version/build
  • AI算硅基生命吗,为什么?
  • 移动端高清、多屏适配方案
  • ​​​​​​​​​​​​​​Γ函数
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #include<初见C语言之指针(5)>
  • (02)Unity使用在线AI大模型(调用Python)
  • (SpringBoot)第七章:SpringBoot日志文件
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (每日一问)基础知识:堆与栈的区别
  • (一)SvelteKit教程:hello world
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .netcore如何运行环境安装到Linux服务器
  • /boot 内存空间不够
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • [ linux ] linux 命令英文全称及解释
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [Angularjs]ng-select和ng-options