🧸欢迎来到dream_ready的博客,📜相信您对这篇博客也感兴趣o (ˉ▽ˉ;)
📜表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
📜用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
目录
1、SpringMVC是什么?
2、SpringMVC图解各部分详情
3、SpringMVC概念最新版(前后端不分离)
4、应用分层概念
什么是应用分层呢?(概念)
为什么需要应用分层?(了解即可)
5、如何分层(三层架构) (具体实现)—— 重要!
6、MVC与三层架构的区别和联系
1、SpringMVC是什么?
SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分。简化开发,减少出错,方便组内开发人员之间的配合。
以上是它的较为官方的概念,下面我将用大白话来诠释什么是SpringMVC
MVC就是把一个项目分成了三部分,如图:(下面目录2有详细解释)
MVC是一种思想,Spring进行了实现,称为SpringMVC(下面目录2有详细解释)
下面这张图片用于浏览器url直接发送请求时:(下面这张图不重要,主要记住上面的图)
SpringMVC当初在前后端不分离(比如JSP)的项目中大展拳脚
近些年来,由前后端分离等原因,SpringMVC的概念又发生了一些变化(下面目录3有详细解释)
2、SpringMVC图解各部分详情
MVC是思想,就是把一个项目分成了三部分
SpringMVC进行了实现,称为SpringMVC
- Model模型层用来处理业务逻辑,处理数据,内部放置的是项目的逻辑以及方法的实现相关代码
- Controller控制器层选择处理模型,选择视图,实现前后端交互,是View层和Model层交流的桥梁
- View层面向用户,用于界面显示,人机交互
用户的请求在View层接收后,发送到Controller层,Controller层交给对应的,能处理用户请求的Model层
- View层相当于用户,Controller相当于前台,Model相当于各个部门
- 用户带着要求来到前台(View),前台(Controller)听完用户要求后,将其交给对应的销售部、广告部等部门(Model)
下面这张图只是用户的请求直接发给了Controller控制器层,没有经过View层
比如浏览器url路径直接发送请求或者PostMan等工具发送请求时就更适用于下面这张图
3、SpringMVC概念最新版(前后端不分离)
当前阶段,MVC的概念又发生了一些变化,后端开发人员不涉及前端页面的开发,所以也就没有View层
所以View层又有了一层解释,之前返回的是视图,现在返回的是视图所需要的数据
例如:
4、应用分层概念
前言:
类似公司的组织架构
公司初创阶段,⼀个⼈⾝兼数职,既做财务,⼜做⼈事,还有⾏政.
随着公司的逐渐壮⼤,会把岗位进⾏细分,划分为财务部⻔,⼈事部⻔,⾏政部⻔等,各个部⻔内部还会再进⾏细分.项⽬开发也是类似,最开始功能简单时,我们前后端放在⼀起开发,随着项⽬功能的复杂,我们分为前端和后端不同的团队,甚⾄更细粒度的团队。
后端开发也会根据功能再进⾏细分.MVC就是其中的⼀种拆分⽅式.
但是随着后端⼈员不再涉及前端,后端开发⼜有了新的分层⽅式.
什么是应用分层呢?(概念)
应用分层是一种软件开发设计思想,它将应用程序分成N个层次,这N个层次分别负责各自的职责,多个层次之间协同提供完整的功能,根据项目的复杂度,把项目分成三层,四层甚至更多层
常见的MVC设计模式,就是应用分层的一种具体体现
为什么需要应用分层?(了解即可)
在最开始的时候,为了让项目快速上线,我们通常是不考虑分层的,但是随着业务越来越复杂,大量的代码混在一起,会出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就牵一发而动全身等问题,所以学习对项目进行分层就是我们程序员的必修课了
5、如何分层(三层架构) (具体实现)—— 重要!
MVC就是一种标准的软件分层架构,但目前更主流的开发方式是“前后端分离”的方式,后端开发工程师不再需要关注前端的实现,所以对于Java后端开发者,又有了一种新的分层架构:把整体架构分为表现层(Controller)、业务逻辑层(Service)和数据层(Dao),这种分层方式也称之为“三层架构”
- 表现层:就是展示数据结果和接受用户指令的,是最靠近用户的一层
- 业务逻辑层:负责处理业务逻辑,里面有复杂业务的具体实现
- 数据层:负责存储和管理与应用程序相关的数据
这三个部分在Spring中的体现:
- Controller:控制层。接收前端发送的请求,对请求进行处理,并响应数据
- Service:业务逻辑层。处理具体的业务逻辑
- Dao:数据访问层,也称为持久层。负责数据访问操作,包括数据的增、删、改、查
下面展示一张没有经过三层架构分层的代码:
解释代码意思(仅解释代码在干什么,分层解释在图下面,不在此处):
此段代码用来查询书籍信息mockData是构建假数据,用来测试用
如果书籍信息中的状态为1,则设置可借阅出去,不为1,则设置不可借阅出去
最后将所有数据(books)返回
按照上面的层次划分,SpringMVC站在后端开发人员的角度上,也进行了支持,把上面的的代码划分为三个部分:
- 请求处理、响应数据:负责、接收页面的请求,给页面响应数据
- 逻辑处理:负责业务逻辑处理的代码
- 数据访问:负责业务数据的维护操作,包括增、删、改、查
这三个部分在Spring的实现中均有体现,也就是刚才的Controller、Service、Dao
针对上述的分层思想,进行代码重构:
注:此处为了方便演示代码,左侧结构中没有进行前后端的完全分离,实际需要完全分离
Controller:
Service:
Dao:
可以明显看到,分层后,每个模块间的关系更加明确了然等好处
6、MVC与三层架构的区别和联系
关于二者的关系,一直存在不同的观点,有人认为三层架构是MVC模式的一种实现,也有人认为MVC是三层架构的替代方案,等等各种说法都有,根本原因是大家站在不同的角度看待这个问题的,下面是我查询各种资料后总结出来的较为靠谱的观点
从概念上讲,二者都是软件工程领域中的架构模式
- MVC模式架构由三部分组成,分别是:模型(Model),视图(View)和控制器(Controller)
- 三层架构将业务应用划分为:表现层(Controller),业务逻辑层(Service),数据访问层(Dao)
MVC中,视图和控制器合起来对应三层架构中的表现层,模型对应三层架构中的业务逻辑层,数据层,以及实体类
二者其实是从不同角度对软件工程进行了抽象
- MVC模式强调数据和视图分离,将数据展示和数据分离分开,通过控制器对两者进行结合
- 三层架构强调不同维度数据处理的高内聚和低耦合,将交互界面,业务处理和数据库操作的逻辑分开。
角度不同也就谈不上互相替代了,在日常的开发中可以经常看到两种共存的情况,比如我们设计模型层的时候往往也会拆分出业务逻辑层(Service层)和数据访问层(Dao层)
但是二者的目的是相同的,都是“解耦,分层,代码复用”文章来源:https://www.toymoban.com/news/detail-722316.html
🧸欢迎您于百忙之中阅读这篇博客,📜希望这篇博客给您带来了一些帮助,祝您生活愉快!文章来源地址https://www.toymoban.com/news/detail-722316.html
到了这里,关于什么是SpringMVC?简单好理解!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!