Spring基础——SpringMVC概述

MCV模式

  • MVC模式是Java软件开发中非常常见的一种软件架构模式,该模式把项目开发分成三个基本组成部分,分别是Model(模型),View(视图)和Controller(控制器)
    • View(视图):负责界面显示以及与用户进行人机交互,如表单,网页。
    • Controller(控制器):用来处理用户通过视图发送的请求,通过请求内容选择对应处理的数据模型,并将模型处理后的结果返回给对应用于显示数据模型的视图。
    • Model(模型):模型为处理当前项目所有的数据,状态和业务逻辑,BS模式中由Controller发送请求经由Model处理后返回给Controller。
      MVC

Spring MVC

  • Spring MVC是建立在Servlet API上的原始Web框架,Spring MVC的名称来源于Spring中的模块spring-webmvc中。
  • SpringMVC实质上是一个Web框架,是围绕前端控制器模式设计的,本身并没有实现MVC模式的全部功能(只实现了Controller),其他模块则是委托配置其他组件执行,这样可以让项目开发变的更灵活,同时也支持更多生态的工程。

Srping MVC核心组件

  • SpringMVC中有一个核心Servlet:DispacherServlet,其工作执行流程如下:
    1. 用户发送请求被DispacherServlet拦截处理
    2. DispacherServlet解析请求内容并调用HandlerMapping(处理器映射器)
    3. HandlerMapping根据请求路径查找具体的处理器(通过xml配置或注解配置的映射路径),并生成处理器对象以及处理器拦截器(需自行配置),最后将请求的对应处理器配置返回给DispacherServlet。
    4. DispacherServlet调用HandlerAdapter(处理器适配器)。
    5. HandlerAdapter通过具体适配器调用对应处理器对象(Handler/Controller)。
    6. Controller执行返回ModelAndView对象。
    7. HandlerAdapter将Controller返回的ModelAndView返回给DispatcherServlet。
    8. DispatcherServlet将ModelAndView传给ViewResolver(视图解析器)。
    9. ViewResolver解析ModelAndView后返回具体View(视图)给DispatcherServlet。
    10. DispatcherServlet根据View进行渲染视图(将model填充进视图中)。
    11. DispatcherServlet返回View给用户。
      SpringMVC
组件 说明
DispatcherServlet 前端控制器,由Spring框架提供,用于接受请求,响应结果,是SpringMVC中核心的Servlet
HandlerMapping 处理器映射器,由Spring框架提供,根据请求的Url查找对应的Handler/Controller,
通过XML配置或者注解的方式进行映射
HandlerAdapter 处理器适配器,由Spring框架提供,按照特定规则执行Handler/Controller中的方法
Handler/Controller 处理器/、后端控制器,通过HandlerAdapter的要求编写Handler,接收用户请求信息,调用业务层方法处理请求
ViewResolver 视图解析器,由Spring框架提供,对视图进行解析,把逻辑视图解析成真正的物理视图
View 视图,用于返回展现给用户的数据页面

SpringMVC的Context域

  • 在SpringMVC中有一个属于自己的WebApplicationContext用于MVC的配置,而WebApplicationContext有一个ServletContext将Servlet进行绑定。
  • 我们如果想获取WebApplicationContext的话可以通过RequestContextUtils上的静态方法getWebApplicationContext来查询。
  • 因为SpringMVC主要负责Controller层的实现,其他层的组件则是通过一个Root WebApplicationContext进行访问(其中包括Service,Repositories),其中Root WebApplicationContext可被多个DispatcherServlet共享,而每个Servlet有属于自己的Servlet WebApplicationContext,具体层级关系如下:
    WebApplicationContext

参考资料

基础 | 三层架构与MVC模式
Spring中文网
SpringMVC【入门篇】

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 08:44:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 08:44:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 08:44:01       82 阅读
  4. Python语言-面向对象

    2024-03-12 08:44:01       91 阅读

热门阅读

  1. 系统规划基础

    2024-03-12 08:44:01       40 阅读
  2. 关于mapper.xml的映射问题

    2024-03-12 08:44:01       46 阅读
  3. Be Your Own Teacher 论文阅读

    2024-03-12 08:44:01       44 阅读
  4. LeetCode题练习与总结:最长有效括号

    2024-03-12 08:44:01       47 阅读
  5. Linux系统架构----Nginx的服务优化

    2024-03-12 08:44:01       48 阅读
  6. 单例模式的几种实现方式

    2024-03-12 08:44:01       49 阅读
  7. C语言学习笔记day2

    2024-03-12 08:44:01       40 阅读
  8. 并发中的锁

    2024-03-12 08:44:01       43 阅读
  9. (C语言)球球大作战

    2024-03-12 08:44:01       37 阅读
  10. R 语言patchwork包拼图间隙

    2024-03-12 08:44:01       43 阅读
  11. 华为机考:HJ2 计算某字符出现次数

    2024-03-12 08:44:01       47 阅读
  12. MFC中字符串string类型和CString类型互转方法

    2024-03-12 08:44:01       38 阅读
  13. AI大语言模型GPT & R 生态环境领域数据统计分析

    2024-03-12 08:44:01       42 阅读