应用程序分层开发模式—MVC-SpringBoot(3)
1.MVC设计模式
Spring Boot开发Web应用程序主要使用MVC模式。MVC是Model (模型)、View(视图)、 Controller (控制器)的简写。
- Model:是Java的实体Bean,代表存取数据的对象或POJO (Plain Ordinary Java Objects,简单的Java对象),也可以带有逻辑。其作用是在内存中暂时存储数据,并在 数据变化时更新控制器(如果要持久化,则需要把它写入数据库或者磁盘文中)。
- View:主要用来解析、处理、显示内容,并进行模板的渲染。
- Controller:主要用来处理视图中的响应。它决定如何调用Model (模型)的实体Bean、 如何调用业务层的数据增加、删除、修改和查询等业务操作,以及如何将结果返给视图进行 渲染。建议在控制器中尽量不放业务逻辑代码。
这样分层的好处是:将应用程序的用户界面和业务逻辑分离,度得代码具备良好的可扩展性、 可复用性、可维护性和灵活性。
如果不想使用MVC开发模式也是可以的,MVC只是一个非常合理的规范。MVC的关系如图所示
在整个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 )。
- 表现层:用于展示界面。主要对用户的请求进行接收,以及进行数据的返回。它为客户端(用 户)提供应用程序的访问接口(界面)。
- 业务逻辑层:是三层架构的服务层,负责业务逻辑处理,主要是调用DAO层对数据逬行增 加、删除' 修改和查询等操作。
- 数据访问层:与数据库逬行交互的持久层,被Service调用。在Spring Data J PA中由 Hibernate 来实现°
Repository和DAO层一样,都可以进行数据的增加、删除、修改和查询-它们相当 于仓库管理员,执行进/出货操作。 DAO层的工作是存取对象。Repository层的工作是存取和管理对象 简单理解就是:Repository= 管理时象(对象缓存和在 Repository的状态) + DAO。丿 |
严格地说,MVC是三层架构中的Ul层。通过MVC把三层架构中的UI层又进行了分层。
由此可见,三层架构是基于业务逻辑或功能来划分的,而MVC是基于页面或功能来划分的。