Spring Boot教程之三:Spring Boot 与 Spring MVC 及 Spring的区别

Spring Boot 与 Spring MVC 的区别

Spring MVC: Spring 被广泛用于创建可扩展的应用程序。对于 Web 应用程序,Spring 提供了 Spring MVC 框架,它是 Spring 的一个广泛使用的模块,用于创建可扩展的 Web 应用程序。Spring MVC 框架支持分离模块(即模型视图、控制器),并无缝处理应用程序集成。这使开发人员能够使用普通的 Java 类创建复杂的应用程序。可以使用映射在视图和控制器之间传递模型对象。在本文中,我们将了解如何在 Eclipse IDE 中设置 Spring MVC 应用程序并了解如何创建应用程序。Spring MVC 框架由以下组件组成:

  • 模型——模型可以是对象或对象集合,其基本包含应用程序的数据。
  • 视图 –视图用于以特定格式向用户显示信息。Spring 支持各种技术,例如freemarkervelocitythymeleaf
  • 控制器 –它包含应用程序的逻辑部分。@Controller注释用于将该类标记为控制器。
  • 前端控制器 –它仍然负责管理 Web 应用程序的流程。Dispatcher Servlet 在 Spring MVC 中充当前端控制器。

Spring Boot: Spring Boot 建立在传统的 Spring 框架之上。因此,它提供了 Spring 的所有功能,并且比 Spring 更易于使用。Spring Boot 是一个基于微服务的框架,可以在很短的时间内制作出可用于生产的应用程序。在 Spring Boot 中,一切都是自动配置的。我们只需要使用适当的配置来使用特定的功能。如果我们想开发 REST API,Spring Boot 非常有用。Spring Boot 提供了将我们的项目转换为 war 或 jar 文件的功能。此外,Tomcat 的实例也可以在云上运行。Spring Boot 中有四个主要层:

  • 表示层——顾名思义,它由视图(即前端部分)组成。
  • 数据访问层 –数据库上的 CRUD(创建、检索、更新、删除)操作属于此类别。
  • 服务层——由服务类组成并使用数据访问层提供的服务。
  • 集成层——它由不同的 Web 服务组成(任何可通过互联网提供的服务并使用XML消息传递系统)。

Spring MVC 和 Spring Boot 之间的区别:

序号Spring MVC 简介Spring Boot 简介
1.Spring MVC 是一个基于模型、视图和控制器的 Web 框架,广泛用于开发 Web 应用程序。Spring Boot 建立在传统的 Spring 框架之上,广泛用于开发 REST API。
2.如果我们使用 Spring MVC,我们需要手动构建配置。如果我们使用 Spring Boot,则无需手动构建配置。
3.在 Spring MVC 中,需要部署描述符。在 Spring Boot 中,不需要部署描述符。
4.Spring MVC 单独指定每个依赖项。它将依赖关系包装到一个单元中。
5.Spring MVC 框架由四个组件组成:模型,视图,控制器和前端控制器。Spring Boot 中有四个主要层:表示层、数据访问层、服务层和集成层。
6.开发需要更多时间。它减少了开发时间并提高了生产力。
7.Spring MVC 不提供强大的批处理功能。Spring Boot 提供了强大的批处理功能。
8.它提供了可用于构建 Web 应用程序的即用型功能。它提供了用于构建 Spring 驱动的框架的默认配置。

Spring 和 Spring Boot 之间的区别

Spring 
Spring是一个开源轻量级框架,允许 Java 开发人员构建简单、可靠且可扩展的企业应用程序。该框架主要侧

重于提供各种方法来帮助您管理业务对象。与经典 Java 框架和应用程序编程接口 (API)(例如 Java 数据库连接 (JDBC)、JavaServer Pages (JSP) 和 Java Servlet)相比,它使 Web 应用程序的开发变得更加容易。该框架使用各种新技术(例如面向方面编程 (AOP)、普通旧式 Java 对象 (POJO) 和依赖注入 (DI))来开发企业应用程序。Spring 框架可以被视为子框架的集合,也称为层,例如 Spring AOP、Spring 对象关系映射 (Spring ORM)、Spring Web Flow 和 Spring Web MVC。您可以在构建 Web 应用程序时单独使用这些模块中的任何一个。还可以对模块进行分组以在 Web 应用程序中提供更好的功能。 


Spring Boot 

Spring Boot建立
在传统的 Spring 框架之上。因此,它提供了 Spring 的所有功能,并且比 Spring 更易于使用。Spring Boot 是一个基于微服务的框架,可以在很短的时间内创建可用于生产的应用程序。在 Spring Boot 中,一切都是自动配置的。我们只需要使用适当的配置来利用特定的功能。如果我们想开发 REST API,Spring Boot 非常有用。 

为什么选择 Spring Boot 而不是 Spring?

让我们知道,如果 Spring 解决了所有问题,那么 Spring Boot 到底有什么用呢?

我们之所以需要 Spring Boot,是因为我们正在改变或转向微服务之类的应用程序。有了微服务,最重要的目标之一就是我们希望能够非常快速地开发应用程序。因此,我们不想构建一个大型应用程序,而是构建十个小型微服务,这些微服务有自己的范围和功能。基于 Spring 的应用程序有很多配置。它可以是XML 配置、Java 配置或注释等。例如,如果我们想使用 Spring MVC,我们需要使用@ComponentScan注释、Dispatcher servlet视图解析器web jar等。这种配置会使应用程序的开发速度变慢。因此,Spring Boot 自动配置就派上用场了。它会查看类路径上有哪些类型的框架,并查看程序员提供了哪些配置或已经为应用程序提供了哪些配置。它会查看两者。数据未配置,但类路径上有休眠状态,因此它会自动配置数据源。它将配置内存数据库,它将自动配置调度程序 servlet。这称为自动配置。Spring Boot 会创建一个启动项目,所有 XML 配置和依赖项都默认通过该项目获取。

Spring 和 Spring Boot 之间的区别

Spring

Spring Boot

Spring是一个广泛用于开发企业应用程序的开源轻量级框架。

Spring Boot 建立在传统的 Spring 框架之上,广泛用于开发 REST API。

Spring 框架最重要的特性是依赖注入。

Spring Boot 最重要的特性是自动配置。

它有助于创建松散耦合的应用程序。

它有助于创建独立的应用程序。

要运行 Spring 应用程序,我们需要明确设置服务器。

Spring Boot 提供嵌入式服务器,如 Tomcat、Jetty 等。

要运行 Spring 应用程序,需要一个部署描述符。

不需要部署描述符。

为了创建 Spring 应用程序,开发人员需要编写大量代码。

它减少了代码行数。

它不提供对内存数据库的支持。

它为H2等内存数据库提供支持。

开发人员需要为较小的任务编写样板代码。

在 Spring Boot 中,样板代码减少了。

开发人员必须在 pom.xml 文件中手动定义依赖项。

pom.xml 文件在内部处理所需的依赖项。

最后

基本上,Spring 和 Spring Boot 之间没有可比性,它们各自解决各自的问题。这种比较其实并不重要,因为 Spring 解决了自己的依赖注入问题,而 Spring Boot 解决了快速开发等应用程序的问题。最后,它们有各自的问题空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解析FastDFS:构建高效分布式文件存储的实战指南(上)

文章目录 一、FastDFS简介1.1 概述1.2 特性 二、FastDFS原理架构2.1 FastDFS角色2.2 存储策略2.3 上传过程2.4 文件同步2.5 下载过程 三、FastDFS适用场景四、同类中间件对比4.1 FastDFS和集中存储方式对比4.2 FastDFS与其他文件系统的对比 五、FastDFS部署5.1 单机部署5.1.1 使…

LeetCode 3249.统计好节点的数目:深度优先搜索(DFS)

【LetMeFly】3249.统计好节点的数目:深度优先搜索(DFS) 力扣题目链接:https://leetcode.cn/problems/count-the-number-of-good-nodes/ 现有一棵 无向 树,树中包含 n 个节点,按从 0 到 n - 1 标记。树的根节点是节点 0 。给你一…

中国省级金融发展水平指数(金融机构存款余额、贷款余额、GDP)2020-2023年

数据范围: 包含的数据内容如下: 分省份金融机构存款余额、分省份金融机构贷款余额、分省份金融机构存贷款余额、分省份GDP、分省份金融发展指数 西藏自治区、贵州省、黑龙江省2023年数据暂未公布,计算至2022年,其他省份数据无缺失…

大模型(LLMs)RAG 版面分析——表格识别方法篇

大模型(LLMs)RAG 版面分析——表格识别方法篇 一、为什么需要识别表格? 表格的尺寸、类型和样式展现出多样化的特征,如背景填充的差异性、行列合并方法的多样性以及内容文本类型的不一致性等。同时,现有的文档资料不…

力扣(leetcode)题目总结——辅助栈篇

leetcode 经典题分类 链表数组字符串哈希表二分法双指针滑动窗口递归/回溯动态规划二叉树辅助栈 本系列专栏:点击进入 leetcode题目分类 关注走一波 前言:本系列文章初衷是为了按类别整理出力扣(leetcode)最经典题目&#xff0c…

【python系列】python数据类型的分类和比较

一、数据类型的定义 在程序设计的类型系统中,数据类型(英语:Data type),又称资料型态、资料型别,是用来约束数据的解释。——Wikipedia 从定义我们可以看出来,数字类型的理解最主要的是约束数据的解释,每个类型都有他们自己所使用得场景,这个就是数字类型的分类,分类…

【JavaSE】【多线程】阻塞队列

目录 一、阻塞队列1.1 生产者消费者模型1.2 Java提供的阻塞队列1.3 实现一个简单生产者消费者模型 二、自己实现阻塞队列2.1 成员变量2.2 构造方法2.3 put方法2.4 take方法2.5 最终代码 一、阻塞队列 阻塞队列:是一种特殊的队列,也有先进先出的特性。它…

【pytest】pytest注解使用指南

前言:在 pytest 测试框架中,注解(通常称为装饰器)用于为测试函数、类或方法提供额外的信息或元数据。这些装饰器可以影响测试的执行方式、报告方式以及测试的组织结构。pytest 提供了多种内置的装饰器,以及通过插件扩展…

el-table合并单元格之后,再进行隔行换色的且覆盖表格行鼠标移入的背景色的实现

el-table 中有现成的隔行换色功能,只要增加 stripe 属性即可。但是如果有单元格合并的话,这个属性就不可用了。这时候我们就需要动点小心思了。 基于相同字段进行合并 单元格合并:基于表头中的某一列,具有相同值的个数相加进行合…

OpenAI模型whisper 音频转文本

最近有一个音频转文本的需求,了解到了OpenAI的whisper模型可以实现。 Whisper 是 OpenAI 提供的一个通用语音识别模型,支持多语言的音频转文本功能,并具有较高的准确性。它的主要用途包括自动语音识别 (ASR)、语言翻译(将音频直接…

ubuntu下连接了192.168.1.x和192.168.2.x两个网络段,如何让这个两个网段互相通信?

在 Ubuntu 上连接两个网络段(如 个人终端A 192.168.1.10 和 个人终端B 192.168.2.10),需要配置路由和网络转发功能,使这两个网段能够相互通信。以下是实现方法: 步骤 1:确认网络配置 1. 确保 Ubuntu 机器…

汽车资讯新高度:Spring Boot技术飞跃

6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…

03-axios常用的请求方法、axios错误处理

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

机器学习基础04_朴素贝叶斯分类决策树分类

目录 一、朴素贝叶斯分类理论 1、贝叶斯分类理论 2、条件概率 3、全概率公式 4、贝叶斯推断 5、朴素贝叶斯推断 6、拉普拉斯平滑系数 二、决策树分类 1、相关概念 2、基于信息增益决策树的建立 3、基于基尼指数决策树的建立 一、朴素贝叶斯分类理论 1、贝叶斯分类理…

git日志查询和导出

背景 查看git的提交记录并下载 操作 1、找到你idea代码的路径,然后 git bash here打开窗口 2、下载所有的日志记录 git log > commit.log3、下载特定日期范围内记录 git log --since"2024-09-01" --until"2024-11-18" 你的分支 > c…

后台管理系统(开箱即用)

很久没有更新博客了,给大家带上一波福利吧,大佬勿扰 现在市面上流行的后台管理模板很多,若依,芋道等,可是这些框架对我们来说可能会有点重,所以我自己从0到1写了一个后台管理模板,你们使用时候可扩展性也会更高 项目主要功能: 成员管理,部门管理&#…

Spring Boot 牛刀小试 org.springframework.boot:spring-boot-maven-plugin:找不到类错误

今天看了下书翻了下Spring Boot的用法,下载idea后, 反复出现org.springframework.boot:spring-boot-maven-plugin:找不到类错误,后来看了下调试窗口,发现是连不上maven的网站443错误,解决思路很简单,把ide连…

数据中心的拥塞控制

前面提到,如今的高速网络方案集中在卸载主机网络能力,降低主机处理时延,甚至 PFC 用网络排队时延换主机时延,本末倒置。而在拥塞控制领域仍是传统的 AIMD 闭环反馈,ECN,QCN 那一套,但拥塞是端到…

【网络云计算】2024第48周-技能大赛-初赛篇

文章目录 1、比赛前提2、比赛题目2.1、 修改CentOS Stream系统的主机名称,写出至少3种方式,并截图带时间戳和姓名,精确到秒,否则零分2.2、 创建一个名为你的名字的拼音的缩写的新用户并设置密码,将用户名添加到 develo…

SAP+Internet主题HTML样式选择

SAP目前只支持三种HTML样式选择: 样式一 背景色:深色,蓝 特点:适中型排列,与SAP界面排列相同,富含UI特征,整齐美观 URL地址:http://cn1000-sap-01.sc.com:8000/sap/bc/gui/sap/it…