码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC学习一、MVC三层架构与SpringMVC原理

时间:2020-03-07 13:25:08      阅读:459      评论:0      收藏:0      [点我收藏+]

标签:分发   col   映射   ram   service   数据模型   obj   基类   本地   

SpringMVC

SSM:Mybatis + Spring + SpringMVC

MVC

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。
  • 是将业务逻辑、数据、显示分离的方法来组织代码
  • MVC主要作用是降低了视图与业务逻辑间的双向耦合
  • MVC不是设计模式,是一种架构模式。不同的MVC存在差异

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao)和服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Colltroller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回代数据模型数据返回给视图,由视图负责展示。也就是说是控制器做了个调度员的工作

三层架构:

表现层,业务层,持久层

表现层(SpringMVC):

一般指web层。负责接收客户端请求,向客户端相应结果

表现层包括展示层和控制层!(控制层负责接收请求,展示层负责结果的展示)

表现层依赖于业务层,接收到客户端请求一般会调用业务层进行业务处理,并将结果返回给客户端。

表现层的设计一般使用MVC模型。(MVC是表现层的设计模型,和其他层没有关系)

业务层(Spring框架):

一般指service层,负责业务逻辑处理

表现层依赖业务层,但是业务层不依赖表现层

业务层在业务处理时,可能会依赖持久层,如果要对数据持久化需要保证事务一致性。

持久层(Mybatis框架):

一般指dao层,负责数据持久化

持久层包括数据库和数据访问层(数据库是载体,数据访问层是业务层和持久层交互的接口)

业务层通过数据访问层将数据持久化到数据库中。

技术图片

比较典型的MVC模式:JSP+Servlet+JavaBean

MVC:模型(dao,service)视图(jsp)控制器(Servlet)

职责分析

controller:控制器

  1. 获得表单数据
  2. 调用业务逻辑
  3. 转向指定的页面

Model:模型

  1. 业务逻辑
  2. 保存数据的状态

View:视图

  1. 显示页面

MVC框架做的事情

  1. 将url映射到Java类或Java类的方法
  2. 封装用户提交的数据
  3. 处理请求--调用相关的业务处理--封装相应数据
  4. 将相应的数据进行渲染 .jso /html 等表示层数据

SpringMVC

SpringMVC是Spring Framework的一部分,是基于Java实现的MVC的轻量级Web框架

特点

  1. 轻量级,简单易学
  2. 高效,基于请求相应的MVC框架
  3. 与Spring兼容性好,无缝结合
  4. 约定大于配置
  5. 功能强大:RESTful,数据验证,格式化,本地化,主题等
  6. 灵活

Spring的web框架围绕DispatcherServlet[调度Servlet]设计。

DispatcherServlet的作用是将请求分发到不同的处理器。

SpringMVC框架以请求为驱动,围绕一个中心Servlet分派请求及提供其他功能,DispatcherServlet是一个实际的Servlet(他继承自HttpServlet基类)

SpringMVC原理

发起请求时,被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心处理器,控制器使用模型与视图渲染图结果,将结果返回给中心控制器,再将结果返回给请求者。

SpringMVC学习一、MVC三层架构与SpringMVC原理

标签:分发   col   映射   ram   service   数据模型   obj   基类   本地   

原文地址:https://www.cnblogs.com/yfyyy/p/12433517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!