Spring MVC 之MVC 体系结构、什么是SpringMVC

这篇具有很好参考价值的文章主要介绍了Spring MVC 之MVC 体系结构、什么是SpringMVC。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MVC 体系结构

三层架构

我们的开发架构⼀般都是基于两种形式,⼀种是 C/S 架构,也就是客户端/服务器;另⼀种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,⼏乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。
三层架构中,每⼀层各司其职,接下来我们就说说每层都负责哪些⽅⾯:

  • 表现层 :

也就是我们常说的web 层。它负责接收客户端请求,向客户端响应结果,通常客户端使⽤http 协议请求web 层,web 需要接收 http 请求,完成 http 响应。
表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。
表现层依赖业务层,接收到客户端请求⼀般会调⽤业务层进⾏业务处理,并将处理结果响应给客户端。
表现层的设计⼀般都使⽤ MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)

  • 业务层 :

也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项⽬的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。
业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务⼀致性。(也就是我们说的, 事务应该放到业务层来控制)

  • 持久层 :

也就是我们是常说的 dao 层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进⾏持久化的载体,数据访问层是业务层和持久层交互的接⼝,业务层需要通过数据访问层将数据持久化到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进⾏增删改查的。

MVC设计模式

MVC 全名是 Model View Controller,是 模型(model)-视图(view)-控制器(controller) 的缩写, 是⼀种⽤于设计创建 Web 应⽤程序表现层的模式。MVC 中每个部分各司其职:
Model(模型):模型包含业务模型和数据模型,数据模型⽤于封装数据,业务模型⽤于处理业务。
View(视图): 通常指的就是我们的 jsp 或者 html。作⽤⼀般就是展示数据的。通常视图是依据模型数据创建的。
Controller(控制器): 是应⽤程序中处理⽤户交互的部分。作⽤⼀般就是处理程序逻辑的。
MVC提倡:每⼀层只编写⾃⼰的东⻄,不编写任何其他的代码;分层是为了解耦,解耦是为了维护⽅便分⼯协作

Spring MVC 是什么?

SpringMVC 全名叫 Spring Web MVC,是⼀种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级Web 框架,属于 SpringFrameWork 的后续产品。
SpringMVC 已经成为 ⽬前最主流的 MVC 框架 之⼀,并且 随着 Spring3.0 的发布,全⾯超越 Struts2,成为最优秀的 MVC 框架。
Servlet、Struts实现接⼝、springmvc中要让⼀个java类能够处理请求只需要添加注解就OK。
它通过⼀套注解,让⼀个简单的 Java 类成为处理请求的控制器,⽽⽆须实现任何接⼝。同时它还⽀持RESTful 编程⻛格的请求。
总之:Spring MVC和Struts2⼀样,都是 为了解决表现层问题 的web框架,它们都是基于 MVC 设计模式的。⽽这些表现层框架的主要职责就是处理前端HTTP请求。
Spring MVC 本质可以认为是对servlet的封装,简化了我们serlvet的开发
作⽤:1)接收请求 2)返回响应,跳转⻚⾯
Spring MVC 之MVC 体系结构、什么是SpringMVC,🐱主流框架,# Spring MVC,# Spring,spring,mvc,java,原力计划

扩展知识

Spring模块

Spring MVC 之MVC 体系结构、什么是SpringMVC,🐱主流框架,# Spring MVC,# Spring,spring,mvc,java,原力计划
这些模块被总结为以下几部分:

Data Access/Integration(数据访问/集成)

Data Access/Integration层包含有JDBCORMOXMJMSTransaction模块,其中:

  • JDBC模块提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。这个模块包含了Spring对JDBC数据访问进行封装的所有类。
  • ORM模块为流行的对象-关系映射API,如JPA、JDO、Hibernate、iBatis等,提供了一个交互层。利用ORM封装包,可以混合使用所有Spring提供的特性进行O/R映射(如简单声明性事务管理)。
    Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括JDO、Hibernate和iBatisSQL Map。所有这些都遵从Spring的通用事务和DAO异常层次结构。
  • OXM模块提供了一个对Object/XML映射实现的抽象层,Object/XML映射实现包括JAXB、Castor、XMLBeans、JiBX和XStream。
  • JMS模块主要包含了一些制造和消费消息的特性。
  • Transaction模块支持编码和声明性的事务管理,这些事务类必须实现特定的接口,并且对所有的POJO都适用。
Web(网络层)

Web上下文模块建立在应用程序上下文模块之上。所以,Spring框架支持与Jakarta Struts集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Web层包含了WebWeb-ServletWebSocketWeb-Porlet模块,具体说明如下。

  • Web模块:提供了基础的面向Web的集成特性。例如,多文件上传、使用servlet listeners初始化IoC容器以及一个面向Web的应用上下文。它还包含Spring远程支持中Web的相关部分。
  • Web-Servlet模块web.servlet.jar:该模块包含Spring的model-view-controller(MVC)实现。Spring的MVC框架使得模型范围内的代码和web forms之间能够清楚地分离开来,并与Spring框架的其他特性集成在一起。
  • WebSocket模块:Spring Framework 4引入了一个spring-websocket模块用来全面的支持websocket。它与Java WebSocket API标准(JSR-356)兼容,并且还提供了一些额外功能。
  • Web-Porlet模块:提供了用于Portlet环境和Web-Servlet模块的MVC的实现。
AOP(面向切面)

AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低他们之间的耦合性。利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点像.Net技术中的attribute概念。
通过配置管理特性,Spring AOP模块直接将面向切面的编程功能集成到了Spring框架中,所以可以很容易地使Spring框架管理的任何对象支持AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。

  • Aspects模块提供了对AspectJ的集成支持。
  • Instrumentation模块提供了class Instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用。
Messaging(消息传送)

消息传送:Spring FrameWork 4包括一个spring-messaging模块,它是从Spring集成项目的关键抽象,如Message, MessageChannel,MessageHandle。该模块该包含一组注释映射消息的方法,类似Spring MVC基于注释的编程模型。

Core Container(核心容器)

Core Container(核心容器)包含CoreBeansContextExpression Language模块.
Core 和 Beans模块是框架的基础部分,提供IoC(控制反转)和依赖注入特性.这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

  • Core模块 : 主要包含Spring框架基本的核心工具类,Spring的其他组件都要使用到这个包里的类,Core模块是其他组件的基本核心.当然你也可以在自己的应用系统中使用这些工具类;
  • Beans模块 : 这个模块所有应用都要用到,它包含访问配置文件 创建和管理bean以及进行IoC/DI操作相关的所有类;
  • Context模块 : 该模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式对象访问方法.Context模块继承了Beans的特性,为Spring核心提供了大量扩展,添加了对国际化、事件传播 、资源加载和堆Context的透明创建的支持。Context模块同时也支持J2EE的一些特性,例如EJB、JMX和基础的远程处理。其中ApplicationContext接口是Context模块的关键。
  • Expression Language模块 : 该模块提供了一个强大的表达式语言用于在运行时查询和操纵对象。它是JSP2.1规范中定义的一个扩展。该语言支持设备/获取属性的值、属性的分配、方法的调用、访问数组上下文、容器和索引器、逻辑和算术运算符、命名变量以及从Spring的IoC容器中根据名称检索对象。它也支持list投影、选择和一般的list聚合。
Test(测试层)

Test模块支持单元测试和包含Junit或者TestNG的集成测试,它提供了Spring的ApplicationContext一致性装载和这些上下文的缓存机制,它还提供了可用于测试代码隔离的模拟对象。

Spring的7大优点

Spring 是一个在企业级开发中使用非常成熟的框架,有些开发人员甚至认为离开了 Spring 就不能很好地完成项目的开发。这种说法虽然有些夸张,但也说明它在开发中的广泛应用。

使用 Spring 能加快项目的开发速度,能使业务代码逻辑更加清晰,也能让开发人员更关注业务的开发。简单来说,在项目中使用 Spring 具有以下 7 个优点:

  • 非侵入式:基于 Spring 开发的应用的对象可以不依赖于 Spring 的 API。
  • 控制反转:IoC,指将对象的创建和管理交给 Spring,只需要进行对象的注入即可,不用担心对象的创建和值的设置。
  • 依赖注入:DI,配置后由 Spring 给属性赋值,而不需要再手动调用 set 方法给属性赋值。
  • 面向切面编程(AOP):更加简单和高效地完成日志记录、权限判定及事务处理等功能。
  • 容器化:Spring 就是一个容器,用于管理应用对象的整个生命周期。
  • 功能组件化:使用 Spring 框架,能快速集成第三方的组件,从而组合成一个复杂的应用,并且可以插拔式选择不同的组件。
  • 一站式开发:在 Spring 的基础上可以方便地整合第三方类库到项目中。

本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位指出。
主页:共饮一杯无的博客汇总👨‍💻

保持热爱,奔赴下一场山海。🏃🏃🏃文章来源地址https://www.toymoban.com/news/detail-698024.html

到了这里,关于Spring MVC 之MVC 体系结构、什么是SpringMVC的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 软件设计模式与体系结构-软件体系-层次软件体系结构

    层次之间存在接口, 通过接口形成call/return的关系 ,上层是下层的客户端 层次系统的基本构件: 各层次内部包含的构件 连接件: 层间的交互协议 拓扑结构: 分层 拓扑约束: 对相邻层间交互的约束 层次软件体系结构(Layered Software Architecture)是一种常见的软件设计模式,

    2024年02月13日
    浏览(56)
  • OSI体系结构和TCP/IP体系结构

     在第一章( 计网第一章 )的时候,曾经提到过OSI体系结构和TCP/IP体系结构,并对它们进行了简单的对比。这篇博客在其基础上进行更深层次的理解。 计算机网络在逻辑功能上可以分为通信子网和资源子网两部分。 事实上,OSI将低三层称为通信子网,即为了联网而附加的通

    2024年02月07日
    浏览(76)
  • 【体系结构】山东大学计算机体系结构知识点清单

    涵盖所有考点,复习绝对高效,点赞+留邮箱获取pdf版本 1. 计算机系统的层次结构 语言实现的两种基本技术: 翻译:先把 N+1 级程序全部转换成 N 级程序后,再去执行新产生的 N 级程序,在执行过程中 N+1 级程序不再被访问。 解释:每当一条 N+1 级指令被译码后,就直接去执

    2024年02月11日
    浏览(74)
  • 计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构

    计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构 七层体系结构(OSI七层结构) :为了使全世界不同体系结构的计算机能够互联,国际化标准组织ISO提出开放系统互联基本参考模型,简称OSI,即所谓的7层协议体系结构。 TCP/IP四层模型 :是由实际

    2024年02月06日
    浏览(64)
  • 计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)

    目录 物理层 数据链路层 网络层 运输层 应用层 计算机网络是个非常复杂的系统。 早在最初的ARPANET设计时就提出了分层的设计理念。 \\\"分层\\\"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。 下面,我们以五层原理结构体系

    2024年02月07日
    浏览(59)
  • MySQL体系结构

     🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL-进阶篇 🍹文章作者技术和水平很有限,如果文中出现错误,希望大家能指正🙏 📜 感谢大家的关注! ❤️ 目录 🚀 MySQL体系

    2024年01月22日
    浏览(90)
  • 了解 PostgreSQL 体系结构

    PostgreSQL 是客户端/服务器关系数据库管理系统 (RDMS)。 PostgreSQL 还支持各种扩展插件,例如 Azure Database for PostgreSQL 超大规模 Citus 选项中的 Citus 扩展插件。 将扩展插件加载到数据库中后,它将像任何内置功能一样正常运行。 PostgreSQL 也有自己的查询语言,称为 pgsql。 此外,

    2024年02月16日
    浏览(43)
  • 计算机体系结构

    目录 第一章 基本概念 1.虚拟计算机 2.计算机系统结构的定义 3.佛林(Flynn)分类法 4.Amdahl定律 5.CPU性能公式 6.程序访问的局部性原理 第二章 指令系统 1.数据表示与数据类型 2.浮点数的表示方式 3.编址方式 4.寻址方式 5.指令系统的优化设计  6.Huffman编码法 7.拓展编码 8.两种方

    2024年02月06日
    浏览(61)
  • JVM 体系结构

    JVM: 跨平台语言 需要不同语言由自己编译器,生成符合 JSR-292 JVM规范的字节码文件,即可在 Java 虚拟机中运行  多语言混合编程: Java 平台上的多语言混合编程正成为主流,通过特定领域的语言去解决特定领域的问题是当前软件开发应对日趋复杂的项目需求的一个方向 每个应

    2024年02月03日
    浏览(48)
  • 冯诺依曼体系结构

    冯·诺依曼体系结构(von Neumann architecture)是现代计算机体系结构的基础,也是目前广泛应用的计算机体系结构之一。它是由物理学家、数学家冯·诺依曼在1945年提出的,被认为是现代计算机的奠基之作。冯·诺依曼体系结构具有存储程序和通用性的特点,这意味着计算机的指

    2023年04月23日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包