SpringBoot 的MVC分层思想简述

springboot 专栏收录该内容
5 篇文章 0 订阅

前言

spring MVC,望文生义,主要分为Model层、View层、C层,这是一种大体的宏观的分层架构。
Model模型层,是指处理的业务逻辑模型,专注于数据的处理。
View层,指的是数据展示层,本质上展示的数据全部来自于Model层,通过Controller层获取后,直接或处理之后发送到View层进行数据展示。而View层的表现形式就可以千变万化,而不影响后台的代码逻辑。
Controller层,即控制层,负责对Http请求进行处理,接收到View层发送的HTTP请求后,调用业务逻辑层对Model进行操作,并将操作结果,返回给View层。

而在实际的开发中,可以更加细分为多种层次,灵活多变,不一而足,但是仍然可以有规律可循,大体上应该按照如下层次进行区分。

实例

先上工程代码结构图如下:
在这里插入图片描述
代码工程中,有Controller、Dao、dataobject、service这几个顶层包,而顶层包又可以分为viewobject、model等二级包,调用关系如下图所示:
在这里插入图片描述

1.view层到controller层

如上图所示,view层接收到浏览器的操作后,发送请求给Controller,控制器在得到数据后,将结果返回到View层,展示给用户。

2.Controller到Model的数据流程

Controller在接收到View的请求后,需要调用service层的类,service调用mybatis的mapper类,这些操作数据库的类,就是DAO层。mapper从数据库中得到了最原始的数据库数据,即与数据库表一一对应的dataobject,将这些dataobject类进行组合成为一个model,符合业务逻辑处理的模型,将这些model类,返回给Contoller。
有些情况下,Model层的数据并不需要全部返回给view,这时候就需要对model进行一层转换,转换为view想要的数据类型,即viewobject。

3. 举例说明

现在有两个数据库表,一个user表(id, name,age),一个password表(id,user_id,password)。
现在要求返回一个特定的用户信息展示在view界面上。

那么在dataobject下会有User和Password两个类,这两个类的属性与user和password表一模一样。
而实际的业务逻辑里,一个用户是包含密码的,所以,就需要建立一个UserModel类,具有(id,name,age,password)属性,这就需要对dataobject中的类进行处理才能得到。

得到Model类之后,就可以直接通过Controller返回给View进行展示了,但是,正常的系统中,密码这种敏感信息是不允许发送给前台的,所以Controller在发送给view之前,需要对Model类做进一步的处理成viewobject,即转换成UserView类,然后把UserView对象返回给View,进行数据展示。

总结

综上,宏观层面上有MVC三层,但是需要做细分。
Controller层需要分为ctroller层和viewobject层。
Model层可以分为 service、dao、model、dataobject四层。

  • 1
    点赞
  • 0
    评论
  • 7
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

liuyufeng509

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值