gpt4 book ai didi

浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程

转载 作者:我是一只小鸟 更新时间:2023-09-09 07:02:01 35 4
gpt4 key购买 nike

浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程

MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,Controller(控制器)将View(视图、用户客户端)与Model(javaBean:封装数据)分开构成了MVC,今天我们浅聊一下SpringMVC的相关组件以及通过源码了解器执行流程 。

SpringMVC的核心组件 : 前端控制器 DispatcherServlet

我们需要先在web.xml里面配置DispatcherServlet,现在我给出两种配置方式。默认以及扩展配置 1. 默认配置方式 使用此种方式配置,springmvc配置文件位于WEB-INF下 ① SpringMVC的配置文件 默认位于WEB-INF下 , 默认名称为 -servlet.xml ② 设置springMVC的核心控制器所能处理的请求的请求路径 ** /:所匹配的请求可以是login或.html或.js或.css方式的请求路径,但是/不能匹配.jsp请求路径的请求** 。

                        
                          <!-- 配置SpringMVC的前端控制器,对游览器发送的请求统一进行处理 默认配置如下:-->
<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

                        
                      

2. 扩展方式配置 使用此种配置方式,可以将springmvc配置文件,设置到src/main/resource中 ① 可通过 init-param标签设置SpringMVC配置文件的位置和名称 ② 通过 load-on-startup标签 设置SpringMVC前端控制器 DispatcherServlet的初始化时间 。

                        
                          <!-- 配置SpringMVC的前端控制器,对游览器发送的请求统一进行处理 扩展配置如下:-->
<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 通过初始化参数指定SpringMVC配置文件的位置和名称 -->
    <init-param>
        <!-- contextConfigLocation为固定值 -->
        <param-name>contextConfigLocation</param-name>
        <!-- 使用classpath:表示从类路径查找配置文件,例如maven工程中的src/main/resources -->
        <param-value>classpath:springMVC.xml</param-value>
    </init-param>
    <!--
        作为框架的核心组件,在启动过程中有大量的初始化操作要做
        而这些操作放在第一次请求时才执行,会严重影响访问速度
     -->
    <!-- 通过此标签将启动控制DispatcherServlet的初始化时间提前到服务器启动时 -->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <!--
        设置springMVC的前端控制器所能处理的请求的请求路径
        /:所匹配的请求可以是login或.html或.js或.css方式的请求路径
        但是/不能匹配.jsp请求路径的请求
     -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

                        
                      

==》 推荐大家使用扩展方式配置SpringMVC 使用扩展方式配置,可以指定其配置文件的位置和名称,更加灵活方便 。

SpringMVC在执行的时候用到的几个重要组件

  1. HandlerMapping 处理器映射器 ① 在SpringMVC中会有很多请求过来,每个请求都需要有一个Handler处理(Controller) ② HandlerMapping的作用便是找到请求向对应的处理器.

  2. HandlerAdapter 处理器适配器 HandlerMapping只是解析URL,通过映射找到对应的Controller,但是真正调用Controller层方法的是HandlerAdapter 。

  3. View Resolver 视图解析器 解析ModelAndView对象,根据逻辑名称找到视图,并把数据渲染到页面上 。

SpringMVC的工作流程可以分为几个步骤

  1. 用户发起请求,请求先被Servlet拦截转发给SpringMVC框架.

  2. SpringMVC里面的 DispatchServlet核心控制器,会接收到请求并转发给HandlerMapping 。

  3. HandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller.

  4. 如果用户 配置拦截器,就会按照顺序执行拦截器里面的preHandle方法 。

  5. 由HandlerAdapter执行相应的Contoller层方法 ,最终返回值被 封装成一个ModelAndView对象 (视图名称,和视图的模型数据) 。

  6. 视图解析器根据名称找到视图,然后把数据模型填充到视图里面再渲染到页面上 。

DispatcherServlet源代码解析执行流程

接下来,我将会进入到DispatcherServlet的源代码核心部分中带大家看一下其执行流程 。

                        
                          package org.springframework.web.servlet.DispatcherServlet

                        
                      

这里,我只截取了最核心的部分,展示给大家,已经能足够展示其工作流程了 。

如果这篇文章对大家理解SpringMVC的工作流程有了一定帮助,希望兄弟一键三连,再次感谢大家!!! 。

最后此篇关于浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程的文章就讲到这里了,如果你想了解更多关于浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com