MVC架构简述

简介: MVC架构简述

MVC简介

MVC 是一种非常常见且常用的分层架构,主要包括;M - mode 对象层,封装到 domain 里。V - view 展示层,但因为目前都是前后端分离的项目,几乎不会在后端项目里写 JSP 文件了。C - Controller 控制层,对外提供接口实现类。DAO 算是单独拿出来用户处理数据库操作的层。

MVC优点

1. 耦合性低

2. 重用性高

3. 生命周期成本低

MVC缺点

1. 视图与控制器间的过于紧密的连接并且降低了视图对模型数据的访问

2. 增加系统结构和实现的复杂性

SpringMVC

SpringMVCSpring家族中的元老之一,它是一个基于MVC三层架构模式的Web应用框架,它的出现也一统了JavaWEB应用开发的项目结构,从而避免将所有业务代码都糅合在同一个包下的复杂情况。同时它还支持RESTful 编程风格的请求。。在该框架中通过把Model、View、Controller分离,如下:

  • M/Model模型:由service、dao、entityJavaBean构成,主要负责业务逻辑处理。
  • V/View视图:负责向用户进行界面的展示,由jsp、html、ftl....等组成。
  • C/Controller控制器:主要负责接收请求、调用业务服务、根据结果派发页面。

运行流程

  • 用户发送请求至会先进入DispatcherServlet控制器进行相应处理。
  • DispatcherServlet会调用HandlerMapping根据请求路径查找Handler
  • 处理器映射器找到具体的处理器后,生成Handler对象及Handler拦截器(如果有则生成),然后返回给DispatcherServlet
  • DispatcherServlet紧接着会调用HandlerAdapter,准备执行Handler
  • HandlerAdapter底层会利用反射机制,对前面生成的Handler对象进行执行。
  • 执行完对应的Java方法后,HandlerAdapter会得到一个ModelAndView对象。
  • HandlerAdapterModelAndView再返回给DispatcherServlet控制器。
  • DisPatcherServlet再调用ViewReslover,并将ModelAndView传递给它。
  • ViewReslover视图解析器开始解析ModelAndView并返回解析出的View视图。
  • 解析出View视图后,对视图进行数据渲染(即将模型数据填充至视图中)。
  • DispatcherServlet最终将渲染好的View视图响应给用户浏览器。

SpringMVC 的优势

1. 清晰的角色划分: 前端控制器(DispatcherServlet) 请求到处理器映射(HandlerMapping) 处理器适配器(HandlerAdapter) 视图解析器(ViewResolver) 处理器或页面控制器(Controller) 验证器( Validator) 命令对象(Command 请求参数绑定到的对象就叫命令对象) 表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。

2.分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要。

3. 生态环境好,和 Spring 其他框架无缝集成,是其它 Web 框架所不具备的。


目录
相关文章
|
24天前
|
安全 数据管理 中间件
云LIS系统源码JavaScript+B/S架构MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示
检验科云LIS系统源码是医疗机构信息化发展的重要趋势。通过云计算技术实现数据的集中管理和共享可以提高数据利用效率和安全性;通过高效灵活的系统设计和可扩展性可以满足不同医疗机构的需求;通过移动性和智能化可以提高医疗服务的精准度和效率;通过集成性可以实现医疗服务的协同性和效率。因此,多医院版检验科云LIS系统源码将成为未来医疗机构信息化发展的重要方向之一。
29 2
|
24天前
|
前端开发 Java fastjson
且谈软件架构(二) 模块化与MVC
且谈软件架构(二) 模块化与MVC
|
2天前
|
存储 前端开发 数据库
MVC模式和三层架构
MVC模式和三层架构
9 2
|
15天前
|
前端开发 JavaScript 中间件
基于最新koa的Node.js后端API架构与MVC模式
基于最新koa的Node.js后端API架构与MVC模式
28 1
|
21天前
|
XML 前端开发 Android开发
Android架构设计——MVC,滴滴 战略 面试
Android架构设计——MVC,滴滴 战略 面试
|
21天前
|
XML 前端开发 Android开发
Android架构设计——MVC(1),Android多进程从头讲到尾
Android架构设计——MVC(1),Android多进程从头讲到尾
|
24天前
|
存储 前端开发 Java
软件体系结构 - 架构风格(13)MVC架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(13)MVC架构风格
40 0
|
24天前
|
前端开发 Java PHP
信息系统架构模型(1) MVC
信息系统架构模型(1) MVC
27 0
|
24天前
|
XML 前端开发 测试技术
安卓架构模式:MVC、MVP、MVVM及更多
【4月更文挑战第13天】本文探讨了安卓应用开发中的常见架构模式,包括MVC、MVP和MVVM,以及VIPER和Clean Architecture。MVC分离关注点,易于理解,但安卓不直接支持。MVP通过呈现器实现更清晰的分层和便于单元测试。MVVM利用数据绑定简化UI逻辑,适合声明式编程。开发者应根据项目需求、团队技能和维护周期选择合适架构,随着工具和框架的进步,未来将提供更多模块化、可测试性和敏捷性的解决方案。
|
24天前
|
存储 前端开发 Java
理解MVC架构模式:Java Web开发的设计理念
【4月更文挑战第3天】MVC架构模式在Web开发中广泛应用于构建可维护和扩展的应用。它将应用程序分为模型、视图和控制器三部分,增强代码模块化和重用。模型处理数据逻辑,视图负责用户界面,而控制器协调二者。MVC优点包括高内聚、低耦合、易于测试、扩展和维护。在Java Web开发中,可通过Servlet、JSP或Spring框架实现MVC。理解并运用MVC是Java Web开发者的关键技能。
理解MVC架构模式:Java Web开发的设计理念