应用程序分层开发模式 —— MVC(面试)

1. 了解 MVC 模式

Spring Boot开发Web应用程序主要使用MVC模式。MVC是Model(模型)、View(视图)、 Controller (控制器)的简写。

● Model: 是Java的实体Bean, 代表存取数据的对象或POJO ( Plain Ordinary JavaObjects,简单的Java对象),也可以带有逻辑。其作用是在内存中暂时存储数据,并在数据变化时更新控制器(如果要持久化,则需要把它写入数据库或者磁盘文件中)。

● View: 主要用来解析、处理、显示内容,并进行模板的渲染。

● Controller: 主要用来处理视图中的响应。它决定如何调用Model (模型)的实体Bean、如何调用业务层的数据增加、删除、修改和查询等业务操作,以及如何将结果返给视图进行渲染。建议在控制器中尽量不放业务逻辑代码。

这样分层的好处是:将应用程序的用户界面和业务逻辑分离,使得代码具备良好的可扩展性、可复用性、可维护性和灵活性。

如果不想使用MVC开发模式也是可以的,MVC只是一一个非常合理的规范。MVC的关系如下图所示。
在这里插入图片描述

如果读者对MVC开发徽式理解得不深入,那么往往会以为用户通过浏览器访问MVC模型的页面就是访问视图(View)。实际上,它不是直接访问视图,而是访问 DispatcherServlet 处理映射和调用视图演染,然后返回给用户的数据。

在整个Sping MC相架中,DispatcherServlet 处于核心位置,继承自HttpServlet。它负责协调和组织不同组件,以完成请求处理并返回响应工作。

整个工程流程如下:

(1) 客户端(用户)发出的请求由Toncat (服务器)接收,然后Tomcat 将请求转交给DispatcherServlet处理。

(2) DispatcherServlet 匹配控制器中配置的映射路径,进行下一步处理。

(3) ViewResolver 将 ModelAndView 或 Exception 解析成 View。然后 View 会调用 render() 方法,井根据 ModelAndView 中的数据染出页面。

在 MVC 开发模式中,容易混淆的还有 Model,它往会被认为是业务逻辑层或 DAO 层。这种理解并不能说是错误的,但并不是严格意义上的 MVC 模式。

2. MVC 和 三层架构的关系

三层架构,就是将整个应用程序划分为表现层(UI)、业务逻辑层(Senice )、数据访问层 ( DAO / Repository )。

● 表现层:用于展示界面。主要对用户的清求进行接收,以及进行数据的返回。它为客户端(用户)提供应用程序的访问接口(界面)。

● 业务逻辑层: 是三层架构的服务层,负责业务逻辑处理,主要是调用DAO层对数据进行增加、删除、修改和查询等操作。

● 数据访问层:与数据库进行交互的持久层,被 Service 调用。在Spring Data JPA 中由Hibernate来实现。

注意一下:

Repository 和DAO层一样,都可以进行数据的增加、删除、修改和查询。它们相当于仓库管理员,执行进/出货操作。

DAO 层的工作是存取对象。Repository 层的工作是存取和管理对象。

简单理解就是: Repository-管理对象(对象缓存和在Repository的状态) + DAO

严格地说,MVC 是三层架构中的 UI 层。通过 MVC 把三层架构中的 UI 层又进行了分层。

由此可见,三层架构是基于业务逻辑或功能来划分的,而MVC是基于页面或功能来划分的。

参考:《Spring Boot 实战派》 龙中华

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值