1.说到Spring MVC就会想到它是基于MVC设计模式的思想来设计的:

  那么MVC设计模式是什么呢? 下面来介绍一下

MVC 设计模式

MVC是模型(model)-视图(view)-控制器(controller)的缩写,是一种用于设计编写Web应用程序的模式。

MVC设计模式的三大角色:

Model (模型)

模型层(Model):在模型层中又可以分为两层,即Service层和Dao层,这两层的主要功能是:

Service层:负责某些业务处理

Dao层:负责访问数据库,对数据的操作,获取结果集等

View (视图)

​ 通常指的就是我们的jsp或者html。作用一般就是展示数据的。

主要负责显示数据(Html、Css、jQuery等等)

Controller (控制器)

​ 是应用程序中处理用户交互的部分,作用一般就是处理程序逻辑的,主要功能是处理用户的请求

2.介绍完MVC设计模式,让我们来看看Spring MVC的三大组件分别是什么吧!

Spring MVC的三大组件:

处理器映射器(HandlerMapping):
作用:

1.实现类是存储请求和处理器映射关系

2.接口类是对外提供访问映射关系的功能

视图解析器(ViewResolver):
作用:根据视图名称解析视图对象
处理器适配器(HandlerAdapter):
作用:实现类提供适配

讲完这些让我们来看看Spring MVC的生命周期到底是什么样的吧!(流程图

Spring MVC的生命周期(流程图):

  流程图步骤解释:

  1:客户端发出请求到http里面只要符合web.xml里面的配置就转换到DispatcherServlet(前端控制器)来处理

  2:前端控制器请求HandlerMapping(处理器映射器)寻找 Handler

  3:处理器向DispatcherServlet(前端控制器)返回Handler(处理器)

  4:DispatcherServlet(前端处理器)调用处理器适配器去执行Handler

  5:Handler让具体的Controller执行。

  6:Handler执行完成给适配器返回 ModelAndView(存储处理完后的结果数据,以及显示该数据的视图包括:Model和view)

  7:ModelAndView将解析后的信息传递给DispatcherServlet(前端控制器),如解析控制器映射等

  8:DispatcherServlet调用视图解析器(ViewResolver)来解析ModelAndView传递的逻辑视图名。

  9:视图解析器将解析的逻辑视图名传给DispatcherServlet。

  10:DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图

  11:最终视图呈现给用户(响应结果)

  

Spring MVC的生命周期与简单三大组件的简单介绍的更多相关文章

  1. Spring Bean的生命周期、Spring MVC的工作流程、IOC,AOP

    1.Spring Bean的生命周期? (1)构造方法实例化bean. (2)构造方法设置对象属性. (3)是否实现aware接口,三种接口(BeanNameAware,BeanFactoryAwar ...

  2. Spring Bean的生命周期(非常详细)

    Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...

  3. Spring Bean的生命周期,《Spring 实战》书中的官方说法

    连着两天的面试 ,都问到了 Spring 的Bean的生命周期,其中还包括 昨晚一波阿里的电话面试.这里找到了Spring 实战中的官方说法.希望各位要面试的小伙伴记住,以后有可能,或者是有时间 去看 ...

  4. Spring Bean的生命周期详解(转)

    Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...

  5. Spring5源码解析-论Spring DispatcherServlet的生命周期

    Spring Web框架架构的主要部分是DispatcherServlet.也就是本文中重点介绍的对象. 在本文的第一部分中,我们将看到基于Spring的DispatcherServlet的主要概念: ...

  6. Spring动态代理及Spring Bean的生命周期

    数组添加值 public class DiTest { /** * 数组 */ private String [] arrays; /** * List:集合 */ private List<I ...

  7. Spring Bean 的生命周期(详细解读)

    Spring Bean 的生命周期简单易懂.在一个 bean 实例被初始化时,需要执行一系列的初始化操作以达到可用的状态.同样的,当一个 bean 不再被调用时需要进行相关的析构操作,并从 bean ...

  8. spring bean的生命周期

    掌握好spring bean的生命周期,对spring的扩展大有帮助.  spring bean的生命周期(推荐看)  spring bean的生命周期

  9. Spring Bean的生命周期相关博客

    最近得面试题一直 问 Spring 得生命周期,鉴于自己还未阅读过源码 所以只能是自己 背一波了.属实不懂硬背得作用,但是无奈被各位面试官打败了.等以后有时间了 一定要阅读几遍spring的 源码 有 ...

  10. Spring学习手札(四)谈谈Spring Bean的生命周期及作用域

    在Spring中,那些组成应用程序的主体以及由Spring IoC容器所管理的对象,被称之为Bean.Bean与应用程序中其他对象(比如自己创建类)的区别就是,Bean是由IoC容器创建于销毁的.在S ...

随机推荐

  1. answer answerdev/answer:latest 开源问答平台

    freedidi.com/10294.html   https://youtu.be/A2GUgvPlTBE?si=jdhqXL1WttLrLgiQ     docker依赖 yum install ...

  2. .NET静态代码织入——肉夹馍(Rougamo)发布2.0

    肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应 ...

  3. Makefile 入门教程

    Makefile 是一个非常强大的构建自动化工具,用于管理项目的编译.链接和其他构建任务.以下是一个详细的 Makefile 使用文档,包括基本概念.语法.示例和常见任务. 1. 基本概念 目标 (T ...

  4. 内存与CPU:计算机默契交互的关键解析

    内存 内存和CPU之间的交互是计算机体系结构中至关重要的一部分.它们之间的互动类似于一对不可分割的爱侣,彼此相互依赖且密不可分.没有内存,CPU无法执行程序指令,这样计算机就会变得毫无意义.同样地,如 ...

  5. Godot引擎的一些踩坑记录(不断更新中)

    版本号 Godot 3.1.2 文件夹名称使用小写.编译\导出时有的tscn文件的引用路径, 有可能会变成小写路径(怀疑是bug),导致启动失败. ttc字体(文泉驿微米黑)导出时需要手动设置包含*. ...

  6. Mariadb 10.4 root 用户无法使用无密码登录的原因

    Mariadb现在是网站建设中使用的主流数据库之一,当前它很多个版本:10.1.10.2.10.3.10.4. 其中10.1和10.2在程序中使用root用户登录连接数据库都没有什么问题. 如果是10 ...

  7. Codeforces Round #691 (Div. 2) D - Glass Half Spilled(DP)

    题目 补下因实验漏掉的CF(还以为是晚上,没想到是下午开始).前三题过的很顺利,到D题时想了会发现数据很小爆搜貌似能过,就以为是道水题,交了一发T了,胡乱加了点剪枝还是T.逐渐意识到事情的严重性.考虑 ...

  8. 如何用MySQL快速导入sql数据?

    在 MySQL 中,可以使用多种方法来快速导入 SQL 数据.以下是一些常用的方法和技巧,以帮助你在 MySQL 中快速导入大量的 SQL 数据. 1. 使用 mysql 命令行工具 - 将 SQL ...

  9. python中的post请求

    用python来验证接口正确性,主要流程有4步: 1 设置url 2 设置消息头 3 设置消息体 4 获取响应 5 解析相应 6 验证数据 Content-Type的格式有四种:分别是applicat ...

  10. 解决JPA对查询对象set属性值导致数据更新的问题

    问题描述 1.开启了数据库事务 2.通过EntityManager执行查询,获得返回对象 3.代码业务逻辑处理,其中有对象set属性值的操作 4.没有执行过JPA的save方法或者update语句 5 ...