应用程序分层开发模式----MVC
程序员文章站
2024-02-26 19:23:28
...
应用程序分层开发模式----MVC
1. 了解MVC模式
Spring Boot开发WEB 应用程序主要使用MVC模式。MVC是Model(模型)、View(视图)、Controller(控制器)的简写。
1 Model:是java的实体Bean,代表存取数据的对象或POJO( Plain Ordinary Java Objects , 简单的Java对象),也可以带有逻辑。其作用是在内存中暂时存储数据,并在数据变化时更新控制器(如果要持久化,则需要把它写入数据库或者磁盘文件中)。
2 View: 主要用来解析、处理、显示内容,并进行模板的渲染。
3 Controller:主要用来处理视图中的响应。他解决如何调用Model(模型)的实体Bean、如何调用业务层的数据增加、删除、修改和查询等业务操作,以及如何将结果返回给视图进行渲染。建议在控制器中尽量不要放逻辑代码。
这样分层的好处是:将应用程序的用户界面和业务逻辑分离,使得代码具备良好的可扩展性、可复用性、可维护性和灵活性。
如果不想使用MVC开发模式也可以的,MVC只是一个合理的规范。其关系如下图:
如果你对MVC理解的不是很深入,那么往往会以用户通过浏览器访问MVC模型的页面就是访问视图(View)。实际上,它并不是直接访问视图,而是访问DispatcherServlet处理的映射和调用视图渲染,然后返回给用户的数据。
在整个Spring MVC框架中,DispatcherServlet处于核心位置,继承自HttpServlet。它负责协调和组织不同组件,以完成请求处理并返回响应工作。
整个流程如下:
1. 客户端(用户)发送的请求有Tomcat(服务器)接收,然后Tomcat将请求转交给DispatcherServlet处理。
2. DispatcherServlet匹配控制器中配置的映射路径,进行下一步处理。
3. ViewResolver将ModelAndView或Exception解析成View。然后View会调用render()方法,并根据ModelAndView中的数据渲染出页面。
在MVC开发模式中,容易混淆的还有Model,它往往会被认为是业务逻辑层或DAO层。这种理解并不能说是错误的,但并不是严格意思上的MVC模式。
2. MVC和三层架构的关系
三层架构,就是将整个应用程序划分为表现层(UI)、业务逻辑层(Service)、数据访问层(DAO/Repository)。
1. 表现层:用于展示界面。主要对用户的请求进行接收,以及进行数据的访问。它为客户端(用户)提供应用程序的访问接口(界面)。
2. 业务逻辑层:是三层架构的服务层,负责业务逻辑处理,主要是调用DAO层对数据进行增加、删除、修改和查询等操作。
3 数据访问层:与数据库进行交互的持久层,被service调用。在Spring Data JPA中由Hibernate来实现。
严格地说,MVC是三层架构中的UI层。通过MVC把三层架构中的UI层又进行分层。
由此可见,三层架构是基于业务逻辑或功能来划分的,而MVC是基于页面或功能来划分的。