SpringBoot 的MVC分层思想简述

本文深入探讨SpringBoot的MVC架构,详细讲解了View、Controller及Model各层的功能与交互,通过实例演示数据如何在各层间流转,强调了分层设计的重要性。

前言

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四层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值