zoukankan      html  css  js  c++  java
  • MVC与三层架构解析学习

    概要

    MVC与三层架构不是简单的相等,二者之间存在一些区别。
    今天,看到一位博主总结笔记,借鉴而来,以供以后学习。
    将javaweb开发中的MVC(SSM框架)与三级架构比较,来解析二者之间的关系。

    系统架构

    指整个应用系统程序大的结构,常见的系统架构有三层架构与MVC。这两种系统架构,都是为了降低系统模块间的耦合度。

    三层架构

    三层架构是指:视图层Viev、服务层Service、持久层Dao,分别完成不同的功能。

    View层:用于接收用户提交请求的代码。
    Service层:系统的业务逻辑代码。
    Dao层:直接操作数据库的代码。

    为了更好降低各层间的耦合度,三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,通过接口实现。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更好,这就可以实现了层间的耦合。
    这里写图片描述

    MVC

    MVC指:Model模型、View视图、Controller控件器。

    View视图:,为用户提供使用界面,与用户直接进行交互。
    Model模型:承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称为数据承载Bean,一类称为业务处理Bean。所谓数据承载Bean是指实体类,专门承载业务数据的,如Student、User等。而业务处理Bean则是指Service或Dao对象,专门用于处理用户提交请求的。
    Controller控制器:用于将yoghurt请求转发给相应的Model进行处理,并处理Model的计算结果向用户提供相应响应。

    MVC架构程序的工作流程:

    (1)用户通过View页面向服务器端提出请求,可以是表单请求、超链接请求、AJAX请求等。
    (2)服务端Controller控制器接收到请求后对请求进行解析,找到相应的Model对用户请求进行处理。
    (3)Model处理后,将处理结果再交给Controller。
    (4)Controller在接到处理结果后,根据处理结构找到要作为向客户端发回的View页面。页面经渲染(数据填充)后,再发送给客户端。这里写图片描述

    关系

    MVC与三层架构的关系

    如果以三层架构为背景,对应的MVC的三个部分分别对应的什么呢?
    三层架构中的View层简单的说就是跟用户发生直接关系的层,MVC中的V和C就是这样的存在,所以MVC中的V和C均属于三层架构的View层。同时,MVC中的M(model)包括了数据承载Bean和业务处理Bean,其中业务处理Bean分为Service或Dao对象,分别对应业务逻辑处理和数据库操作,相应的,,它们对象三层架构中的Service层和Dao层。其关系为:这里写图片描述

    SSM与三层架构的关系

    SSM即SpringMVC、Spring、Mybatis三个框架。它们在三层架构中所处的位置是不同的,即它们在三层架构中的功能各部相同,各司其职。

    SpringMVC:作为View层的实现者,完成用户的请求接收功能。SpringMVC的Controller作为整个应用的控制器,完成用户请求的转发及对用户的响应。
    MyBatis:作为Dao层的实现者,完成对数据库的增、删、改、查功能。
    Spring:以整个应用大管家的身份出现。整个应用中所有的Bean的生命周期行为,均为Spring来管理。即整个应用中所有对象的创建、初始化、销毁、及对象间关联关系的维护,均有Spring进行管理。
    SSM与三层架构关系SSM与三层架构关系

    感谢原作者的分享,供我这样的小白学习。
    作者:CSDN_LQR
    地址:https://juejin.im/post/5929259b44d90400642194f3

  • 相关阅读:
    异常
    JAVA Math类
    Spring Cloud微服务Sentinel+Apollo限流、熔断实战总结
    JAVA之JDBC数据库连接池总结篇
    利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等
    python3 最基本且简单的实现组合设计模式
    原生工程接入Flutter实现混编
    a[i][j] 和 a[j][i] 有什么区别?
    iconv函数报错 Detected an illegal character in input string
    用Python把20年的GDP、人口以及房价数据进行了可视化
  • 原文地址:https://www.cnblogs.com/aixing/p/13327801.html
Copyright © 2011-2022 走看看