尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

什么是MVC?什么是SpringMVC?什么是三层架构?

什么是MVC?什么是SpringMVC?什么是三层架构? 文章目录*应用分层* 什么是MVC?* 什么是 SpringMVC* 三层架构* 三层架构和MVC的关系应用分层----在讲解什么是MVC之前先来理解一下什么是应用分层。应用分层是一种软件开发设计思想将应用程序划分成N个层次每个层次都分别负责自己的职责多个层次之间来协同提供完整的功能根据项目的复杂度将项目分成三层或四层等。 举个例子比如一个公司创始初期创始人要身兼数职既要做财务又要做人事又要做行政但随着公司的越来越大就会划分成多个不同的部门。为什么要进行应用分层在功能简单代码量少是我们通常不考虑分层但是随着业务越来越复杂功能越来越强大大量的代码都混在了一起会出现逻辑不清晰各模块相互依赖代码扩展性差改动一处牵动全身等问题所以就要对项目进行分层MVC 和 三层架构 都是应用分层的充分体现下面先看一下什么是MVC。什么是MVC------MVC(Model View Controller)它是一种思想他把软件系统分为 以下三部分Model(模型)用来处理程序中数据逻辑的部分View(视图)在应用程序中专门和浏览器进行交互展示数据的资源Contreller(控制器)可以理解成是一个分发器来决定对于视图发来的请求需要用哪一个模型来处理以及处理完后需要跳回到哪一个视图也就是用来连接视图和模型的举个例子1.比如进入京东的购物页面2.搜索手机以上的过程当进入京东购物网站时这个页面就相当于是一个视图它向我们展示了各种各样的资源在我们搜索手机这个资源时就会发送出一个请求此时这个请求会交给 控制器(Controller)控制器针对这个请求就会选择对应处理模型(Model)对这个请求进行处理而上图的展示的手机资源的页面就相当于是处理模型处理的结果由控制器再将这个视图返回给我们。再举一个简单的例子 比如我们去餐厅吃饭服务员就会来接待我们服务员就会将我们点的菜写在小本本上然后交给前台前台再交给厨师厨师做完之后就会再交给前台前台再根据这个菜确定是哪个菜单然后再让服务员交给客人此时服务员帮我们写菜单就相当于是一个视图前台就相当于是控制器厨师就相当于是模型什么是 SpringMVC--------------MVC 它是一种思想而SpringMVC 它是将这种思想进行了实现除此之外SpringMVC 还是一种 Web 框架比如在创建 SpringBoot 项目时所勾选的 Spring Web 框架就是SpringMVC框架所以可能就会产生这样的疑问我们创建的不是SpringBoot项目吗怎么变成了 SpringMVC 项目它们俩之间到底有什么关系呢SpringBoot 和 SpringMVC 的关系SpringBoot是2014年发布的,Spring是2004年发布的,在2014年发布之前,就不能Spring实现MVC架构吗当然不是了.SpringBoot 只是实现 SpringMVC 的一种方式SpringBoot 可以添加很多的依赖借助这些依赖实现不同的功能SpringBoot 就是通过添加 SpringWebMVC框架来实现Web功能 举个例子 比如做饭我们做饭不是只能在厨房做做饭这个事情在几千年就有了只要有火有食材就可以做所以做饭就比是 MVCSpringBoot 就好比是厨房通过在厨房里装燃气灶装一些工具等也可以实现做饭这个功能。所以如果想要实现 Web开发的话就要引入这个 Web 框架Spring在实现 MVC的时候也做了一些改进直接把请求发给 控制器Controller并不经过视图。就像我们去餐厅吃饭时不需要服务员为我们记录菜单了直接由前台记录记录完之后交给厨师。三层架构----现在MVC这种方式也已经不再使用了而主流的是前后端分离不再需要View这个模块了不需要再关注于前端了我们只要约定好接口写好后端即可所以对于后端也有了一种新的分层方式就是三层架构分为以下三层1. 表现层展示数据结果和接收用户的请求2. 业务逻辑层负责处理业务逻辑3. 数据层负责存储和管理数据按照这样的层次划分Spring MVC 站在后端的角度上就将代码分成了1. Controller 层控制层用来接收前端发来的请求在Service 层中选择对应的处理逻辑并且给前端进行响应2. Service 层业务逻辑层对发来的请求进行具体的逻辑处理3. Dao 层数据访问层负责访问数据库进行增删查改的操作三层架构和MVC的关系-----------从概念上来讲两者都是软件工程中的架构模式并且两者也是非常相似的就如下面这张图三层架构的“表现层”也就是对应着MVC的 View层 和 Ctroller层因为它们都是用来展示数据和接收请求的所以站在后端人员的角度上看其实 表现层也可以看成是视图层三层架构中的业务逻辑层和数据层对应的就是MVC中的model层都是用来处理业务逻辑的。二者只不过是从不同角度上进行了抽象MVC它强调的是数据和视图的分离将数据的展示和数据的处理分开。通过控制器对两者进行结合。三层架构强调的是从不同纬度上对数据进行处理以达到“高内聚低耦合”高内聚一个模块中各个元素之间的联系的紧密程度如果各个元素之间的联系程度越高则内聚性越高即“高内聚”。低耦合项目中各个层或者模块间的依赖关联程度越低越好不会因为修改一处代码造成很多的代码都需要改动。
返回列表