MVC介绍

发布时间 2023-03-31 21:17:18作者: Linqylin

1、Java Web 项目的分层架构

  在企业级Web项目开发中,标准的三层架构包括:表现层、业务层、数据访问层(持久层)。三层架构中,每一层各司其职,其中:
  表现层:即UI层,负责接收客户端请求,并向客户端返回结果。通常客户端使用http协议请求web层,web服务器需要接收 http 请求,完成 http 响应。表现层又包括展示层和控制层--控制层负责接收请求,展示层负责结果的展示。表现层依赖于业务层,接收到客户端请求后一般会调用业务层进行业务处理,并将处理结果响应给客户端。目前,表现层的实现一般都使用 MVC 模型。
  业务层:即Service 层或BLL(Business logic level)。它负责业务逻辑处理,和开发项目的需求息息相关。Web 层依赖于业务层,但是业务层不依赖 Web 层。业务层在业务处理时一般会依赖于持久层,如果要对数据持久化还需要进行事务管理,所以事务一般放到业务层来控制。
  数据访问层(持久层):也就是 Dao/Mapper 层。主要负责数据持久化,业务层需要通过数据访问层将数据持久化到数据库中。
 
  常用的框架组合SSM即为 SpringMVC+Spring+Mybatis 的简称。
 
2、MVC 模型
(1)MVC介绍
  MVC 是一种软件架构模式,是当前的流行的 Web 应用架构技术,被广泛应用于企业级 Web 应用的开发中。它把 Web 应用划分成三部分:模型(Model)、控制器(Controller)和视图(View)三部分,它们分别完成不同的功能以实现 Web 应用。

 

  MVC 思想由来已久,上世纪 70 年代,挪威奥斯陆大学教授 Trygve Reenskaug 就提出了 MVC 模式的概念。至今,它已发展成为计算机科学中最受欢迎的应用程序模式之一。经过多年的发展,MVC 中三部分的定义如下:
  视图(View):视图是应用程序中显示用户界面(UI)的组件,随着应用程序的复杂性和规模性,界面的处理也变得复杂,一个应用可能有很多不同的视图。MVC 对视图的处理仅仅限于视图上数据的采集和处理,不包括业务流程的处理。
  控制器(Controller):控制器是处理用户交互的组件,它与模型协作,并且最终选择一个要呈现的视图来显示用户界面。理论上,在 MVC 应用程序中,控制器不做任何数据的处理,只负责处理并且响应用户输入和交互。
  模型(Model):模型就是业务流程/状态的处理及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果,业务模型的设计是 MVC 最主要的核心。 

 

当前流行的 MVC 架构主要有:
⚫ Java 的 SpringMVC
⚫ PHP 的 Zend,ThinkPHP
⚫ Python 的 Django
⚫ C#的 ASP NET.MVC 
 
(2) MVC工作流程 
  MVC 工作流程:客户端请求的 URL,首先被映射到相应的控制器Controller,由 Controller 来处理,它或直接选择 View,或从 Model 中取数据,然后再由 Controller 选择合适的 View 返回给客户端。
 
  传统的 Web 应用程序工作流程:若运行http://www.aspnetmvc.com/Home/Index 这个 URL,它访问的是一个具体的 index.aspx页面文件。 
  而在MVC web中,应用程序的工作流程:若运行http://www.aspnetmvc.com/Home/Index这个URL时,它访问的其实是HomeController中的Index()这个方法。 
 
(3) MVC架构的优点
• 将应用程序分为模型、视图和控制器,在管理复杂性方面更加的简单。对于那些由大型开发者和设计者所支持的 Web 应用程序来说,它运作得很好,能够对应用程序的行为提供更高层次的控制。
• 可以为模型在运行时建立和使用多个视图,从而使所有关联的视图和控制器做到同步更新。
• 视图和控制器的可接插性,允许更换视图和控制器对象,可以根据需求动态地打开或关闭,甚至在运行期间进行对象更换。
• 模型的可移植性。模型独立于视图,所以可以把模型独立地移植到新的平台工作,只需要对控制器和视图进行修改。