关于MVC设计模式及流程解析

 更新时间:2022年05月07日 11:25:59   作者:爱叨叨的程序狗  
这篇文章主要介绍了关于MVC设计模式及流程解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

MVC设计模式

概述

是一种开发结构合理、能使前后端分离、流程控制逻辑、业务逻辑调用与展示逻辑分离,实现高内聚,低耦合的设计模式。

M:数据实体模型(Model或Entity):

  • 每一个类的成员变量字段对应数据库字段对应(对应的Entity、JavaBean),提供数据的CRUD操作,实现数据库的持久化。

V:视图(View):

  • 视图层:客户端用户能直接看到的页面,主要负责视图的展示。视图层调用控制层(HTML、JSP等文件)。

C:控制 (Controller):

  • 前端视图层的参数提交和页面的响应,都委托给前端处理器处理,在Spring MVC框架下,在Controller作为控制层,Controller响应URL请求并进行处理,根据映射对应关系,调用service层,service层的接口实现类(xxxserviceImpl)调用Dao层完成数据初始化工作。
  • 负责处理模型处理,处理完成后把模型数据返回给视图。(中间调度员Dispatcher)。

SSM框架项目搭建流程

1.数据库准备:创建数据库,构思需求的数据类型

  • 准备实体类,与数据库一一对应
  • (com.it.entity)

2.构建Dao层

  • (com.it.dao)
  • 构建接口:名称叫XXXDao
  • Dao只做单一的逻辑:对数据库CRUD功能接口定义。
  • 并且写get/set/return方法、构造方法(方便输出)。

3.Dao层接口实现

  • 在使用MyBatis时,MyBatis自动实现,可不必写dao层的实现类,可以直接在Mapper.xml文件里写对应的SQL语句来完成对数据库的持久化操作。

业务层:

4. 定义service

  • (com.it.xxxservice)
  • 在xxxService类里定义服务接口,根据需求定义业务功能接口,在每一个接口上方可写注释来明确该接口的功能。
  • 在Service包下建立Impl文件夹,放Service层定义的接口功能实现类。

小结一下:

面向接口编程:当用户在页面(View层)向服务器发送一个请求时,请求由控制层(Controller)处理,Controller负责拦截和调用业务层相关逻辑(service接口对应的impl实现类),业务层调用Dao层对数据库进行操作,从而实现数据的持久化,最终前端处理器Controller返回处理过后的页面显示给用户。

在这里插入图片描述

(图片来自网络)

这是一个刚入行的小白对MVC设计模式的理解,写博客的目的就是能将一些自己的理解记录下来,或许我的博客还能帮助到大家,当然,我也迫切希望经验丰富的前辈们能对我的理解给你们宝贵的建议,谢谢!

MVC模式的各个步骤

M:Model模型,实体类和业务和dao

V:view 视图 JSP

C:Controller 控制器,servlet

作用:视图和逻辑分离

流程是

1. 先写实体类

2. 数据访问控制层

3. 业务逻辑

4. 控制器

5. 视图

如图:

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • IDEA创建自定义模板图文教程

    IDEA创建自定义模板图文教程

    我们每次在使用IntelliJ IDEA 时总会有一些文件是一直被创建的,今天我们就来学习一下IntelliJ IDEA 的自定义模板功能,文中有详细的图文介绍,需要的朋友可以参考下
    2021-05-05
  • java实现的xml格式化实现代码

    java实现的xml格式化实现代码

    这篇文章主要介绍了java实现的xml格式化实现代码,需要的朋友可以参考下
    2016-11-11
  • SpringMVC用JsonSerialize日期转换方法

    SpringMVC用JsonSerialize日期转换方法

    下面小编就为大家带来一篇SpringMVC用JsonSerialize日期转换方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起 小编过来看看吧
    2016-11-11
  • 详解Java线程编程中的volatile关键字的作用

    详解Java线程编程中的volatile关键字的作用

    这篇文章主要介绍了Java线程编程中的volatile关键字的作用,针对其禁止进行指令重排序和读写内存方面着重讲解,需要的朋友可以参考下
    2015-12-12
  • 解决Spring Boot中Druid连接池“discard long time none received connection“警告

    解决Spring Boot中Druid连接池“discard long time 

    本文主要介绍了解决Spring Boot中Druid连接池“discard long time none received connection“警告,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • Java中byte[]、String、Hex字符串等转换的方法

    Java中byte[]、String、Hex字符串等转换的方法

    这篇文章主要介绍了Java中byte[]、String、Hex字符串等转换的方法,代码很简单,需要的朋友可以参考下
    2018-05-05
  • 创建Jersey REST 服务,基于Maven的实现

    创建Jersey REST 服务,基于Maven的实现

    下面小编就为大家带来一篇创建Jersey REST 服务,基于Maven的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • java之swing实现复选框的方法

    java之swing实现复选框的方法

    这篇文章主要介绍了java之swing实现复选框的方法,实例分析了java基于图形界面复选框的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • 走进JDK之不可变类String

    走进JDK之不可变类String

    这篇文章主要给大家介绍了JDK之不可变类String的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JDK具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 使用SpringBoot项目导入openfeign版本的问题

    使用SpringBoot项目导入openfeign版本的问题

    这篇文章主要介绍了使用SpringBoot项目导入openfeign版本的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论