关于MVC的一些问题
一,Spring MVC简介
介绍
MVC全名是Model View Controller。
- 是模型(model)-视图(view)-控制器(controller)的缩写。
- 是一种使用mvc设计创建 Web 应用程序的模式。
- 是一种软件设计典范。 是软件工程中的一种软件架构模式。
MVC将业务逻辑、数据、界面显示分离的方法组织代码,在改变其中一层时,另外两层可能不需要改变,或作较少的修改即可。 - MVC是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(Controller)的方法把业务逻辑、数据与界面显示分离。MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。通过将M(Model)和V(View)的代码分离,实现了前后端代码的分离,会带来几个好处:可以使同一个程序使用不同的表现形式,因为模型是独立于视图的,所以模型可复用,模型可以独立的移植到别的地方继续使用,前后端的代码分离,使项目开发的分工更加明确,程序的测试更加简便,提高开发效率。控制器的功能类似于一个中转站,会决定调用那个模型去处理用户请求以及调用哪个视图去呈现给用户。
- Spring MVC对这套MVC流程进行封装,帮助开发者屏蔽底层细节,并且开放出相关接口供开发者调用,让MVC开发更简单方便
二,Spring MVC实现原理
MVC原理是View接收用户输入,发送请求给Controller,Controller调用Module完成具体操作。Module从数据库获取数据并进行业务逻辑判断,然后触发事件也就是间接返回数据给View。
为了加深大家的印象,我们引入MVP与MVC进行对比记忆。是MVC中的C改为P,英文单词全拼为Presenter,读作协调器。MVP即为即模型-视图-协调器。
核心组件及工作流程
Spring MVC的核心组件是前端控制器(DispatcherServlet),它相当于整个程序中的行政、调度中心。其它的组件都是它的附庸,为前端控制器提供相关的服务。
是怎么使用前端控制器的:
在Spring MVC中,前端控制器是通过DispatcherServlet实现的。DispatcherServlet是Spring Web MVC的核心组件,它是一个Servlet,负责接收所有的客户端请求并将请求分发给相应的处理器进行处理。要在Spring MVC中使用前端控制器,需要进行以下步骤:
- 在web.xml文件中配置DispatcherServlet,指定DispatcherServlet的映射路径和Spring配置文件的位置。
- 创建Spring配置文件,配置HandlerMapping、HandlerAdapter、ViewResolver等组件,以及处理器(Controller)和视图(View)。
- 创建处理器(Controller),处理客户端请求并返回相应的模型数据和视图。
- 创建视图(View),将模型数据渲染成HTML页面返回给客户端。
工作流程 - 用户与控制器交互:用户与控制器进行交互,例如通过用户界面或API调用。
- 控制器接收请求:控制器负责接收请求,并确定需要将请求发送到哪个模型。
- 模型处理请求:模型负责处理数据相关的请求,并返回数据给控制器。
- 控制器更新视图:控制器接收到模型返回的数据后,使用视图来显示数据。控制器还会更新视图以响应用户输入或其他事件。
- 视图更新模型:当用户对视图进行更改后,控制器会将这些更改发送到模型以进行更新。
- 模型更新数据:模型接收到控制器发送的更新数据请求,并更新相应的数据。
- 视图更新显示:当模型更新数据后,控制器会使用新的数据来更新视图,以反映数据的更改。
三,MVC的优缺点
优点:
1.耦合性低。MVC 分层有助于管理复杂的应用程序,简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑,提高开发效率。
2.重用性高。
3.生命周期成本低,MVC使开发和维护用户接口的技术含量降低。
4.可维护性高。分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
缺点:
1.不适合小型,中等规模的应用程序。花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
2.增加系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
3.视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
总的来说,MVC模式在开发大型和复杂的应用程序时非常有用,可以提高代码的可维护性和可测试性。然而,在简单的应用程序中使用MVC模式可能会过于繁琐和复杂。