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

  • 相关阅读:
    jquery toggle(listenerOdd, listenerEven)
    struts quick start
    hdu 1518 Square (dfs)
    hdu 2544 最短路 (最短路径)
    hdu 1754 I Hate It (线段树)
    hdu 1856 More is better (并查集)
    hdu 1358 Period (KMP)
    hdu 2616 Kill the monster (DFS)
    hdu 2579 Dating with girls(2) (bfs)
    zoj 2110 Tempter of the Bone (dfs)
  • 原文地址:https://www.cnblogs.com/aixing/p/13327801.html
Copyright © 2011-2022 走看看