springmvc启动与执行流程

面试官:说一下Spring MVC的启动流程呗! 基于XML配置的容器启动过程 我们常用的Spring MVC是基于Servlet规范实现的,所以我们先来回顾一下Servlet相关的内容。 如果我们直接用Servlet来开发web应用,只需要继承HttpServlet,实现service方法即可,HttpServlet继承自Servlet,Servlet中常用的方法如下 public interface Servlet { // 初始化,只会被调用一次,在service方法调用之前完成 void init(ServletConfig con. 阅读详情

Spring MVC的启动流程和执行流程是Spring框架中非常重要的部分,它们共同协作以实现Web应用的请求处理和响应生成。下面分别介绍这两个流程:

Spring MVC启动流程

  1. 加载Spring配置文件:

    • 当Web应用启动时,Servlet容器(如Tomcat)会加载web.xml配置文件。
    • 在web.xml中配置了Spring的ContextLoaderListener,它会监听Servlet容器的启动和关闭事件。
    • ContextLoaderListener在Web应用启动时,会加载applicationContext.xml(或其他配置的Spring配置文件)来初始化Spring的根WebApplicationContext。
  2. 创建DispatcherServlet:

    • web.xml中还配置了DispatcherServlet,它是Spring MVC框架的核心Servlet。
    • Servlet容器会创建DispatcherServlet的实例,并调用其init()方法进行初始化。
    • 在init()方法中,DispatcherServlet会加载自己的配置文件(通常是servlet-context.xml),该配置文件定义了Spring MVC框架的各种组件(如控制器、视图解析器、拦截器等)。
  3. 注册组件和创建Bean:

    • 根据servlet-context.xml中的配置,Spring MVC会注册各种组件,并创建相应的Bean实例。
    • 这些Bean实例包括控制器(Controller)、处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)等。
  4. 启动完成:

    • 当所有的Bean都创建和配置完成后,Spring MVC的启动流程就结束了。
    • 此时,Servlet容器开始等待客户端的请求。

Spring MVC执行流程(请求处理流程)

  1. 请求接收:

    • 客户端发送HTTP请求到Servlet容器。
    • Servlet容器将请求交给DispatcherServlet处理。
  2. 请求映射:

    • DispatcherServlet根据请求的信息(如URL)查找合适的处理器映射(HandlerMapping)。
    • 处理器映射根据请求信息返回对应的处理器(Controller)实例。
  3. 处理器执行:

    • DispatcherServlet根据处理器映射返回的信息,调用相应的处理器(Controller)来处理请求。
    • 处理器执行相应的业务逻辑,并返回一个ModelAndView对象,该对象包含了视图名称和模型数据。
  4. 视图解析:

    • DispatcherServlet将ModelAndView对象交给视图解析器(ViewResolver)。
    • 视图解析器根据ModelAndView中的视图名称,解析出具体的视图对象(如JSP视图)。
  5. 渲染视图:

    • DispatcherServlet将模型数据填充到视图对象中,并指示视图对象进行渲染。
    • 视图对象根据模型数据生成最终的响应页面。
  6. 响应返回:

    • DispatcherServlet将渲染后的视图作为HTTP响应返回给客户端。
    • 客户端接收到响应后,解析并显示页面内容。

以上就是Spring MVC的启动流程和执行流程。在这个过程中,Spring MVC框架通过配置文件和组件化的方式,实现了请求的自动映射、处理、视图渲染和响应返回,大大简化了Web应用的开发过程。

高薪程序员&面试题精讲系列107之说说SpringMVC的启动及请求执行流程?Controller是线程安全的吗? 在上一篇文章中,壹哥给大家讲解了Spring框架相关的面试题,本篇我会给大家讲解SpringMVC框架的相关面试题。其实关于SpringMVC的面试题并不是很多,也不是很难,最有技术含量的一道题目,也就是关于SpringMVC的启动及执行流程。基本上,本篇文章中的面试题,壹哥在线下课程里会随着课程都已经非常详细的讲过了,这里我再给大家梳理一遍,希望可以对各位的面试有所帮助。在上一篇文章中,壹哥跟大家说过,Spring框架总共大约包括20个模块,由 1300多个不同的文件构成,这些模块大致可以分为如下几种:下 阅读详情

相关推荐

Win11系统下Abaqus 2025子程序开发环境一站式配置指南

本文详细介绍了在Win11系统下配置Abaqus 2025子程序开发环境的完整流程,包括VS2022和Intel oneAPI的安装与优化,以及Abaqus 2025的目录规划与环境联调。通过避坑指南和实战案例,帮助用户高效完成开发环境配置,避免常见错误,提升工作效率。

weixin_28717431的博客 333

Spring MVC 启动流程一览

Spring MVC 是一种基于 Java 的 Web 框架,它提供了一种基于 MVC(Model-View-Controller)的架构模式,可以帮助开发者更轻松地构建Web应用程序。在本文中,我们将深入探讨 Spring MVC 的启动流程及初始化流程。

m88997766的博客 1947

Wider Face+YOLOV7人脸检测

使用Wider Face数据集训练YOLOV7

chen_znn的博客 8406

SpringMVC系列-1 使用方式和启动流程

当Tomcat被部署到服务器或者通过本地IDEA将项目war包通过local tomcat部署到Tomcat上后,可以通过startup.sh或者startup.bat触发Bootstrap的main方法,从而开启Tomcat容器组件的初始化和启动过程。从宏观上看,启动过程中对应着Listener-> Filter -> Servlet组件的触发流程。本文涉及的组件包括Listener和Servlet:Tomcat在构造Context实例后会触发ServletContextEvent事件

shengyu 6495

Keil 丢失编译器版本5、内核文件core_cm3.c报错

若用的是旧版本的core_cm3.c ,就使用编译器v5编译工程;若想用编译器v6,就更新4个相关的内核文件:(CMSIS:Cortex Microcontroller Software Interface Standard,ARM Cortex™ 微控制器软件接口标准)

qq_52804040的博客 6240

qt下使用grpc编程(2) —— 练手!自己改的一个简单小例子!1

(1)在研究了grpc官方提供的helloworld例程后,自己试着写了个小程序。 (2)编写proto文件。 proto文件用于定义服务和消息,用protobuf的语法编写,protobuf是一种通信协议,详细请百度。下面附上源码: syntax = "proto3"; option java_multiple_files = true; option java_pac

u011099079的博客 3925

SpringMVC启动流程方式分析-三种方式

SpringMvc启动的三种方式

nobaldnolove的博客 2217

WindowsServer2022蓝牙音频开启方法

为Windowsserver 2022 添加蓝牙音频驱动的方法和工具

thebestismin的专栏 2704

SpringMVC启动流程(总结)

SpringMVC启动流程(详细)

weixin_53870150的博客 5124

AI Agent开发第82课-手把手教你把paddleocr-vl做成mcp使其在DIFY里运行

本文详解如何将国产顶尖多模态 OCR 模型 PaddleOCR-VL 封装为标准 MCP(Model Calling Protocol)服务,并通过自研的 HTTP-based MCP Client 接入 Dify 1.10,实现 AI Agent 在对话中自动识别并调用 OCR 能力。该方案已在某头部保险公司真实业务流程中落地,使用了当前最先进的“Agentic AI 原生”设计思想。

打造全国最全的AI Agent开发知识领域的博客 1625

华为OD机试E卷 -猜字谜(Java & Python& JS & C++ & C )

小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩家需要猜出谜底库中正确的单词。猜中的要求如下:请你写一个程序帮忙在谜底库中找到正确的谜底。谜面是多个单词,都需要找到对应的谜底,如果找不到的话,返回”not found”

算法大师! 3488

SpringMVC启动和执行流程

Spring框架大家用得很多,相当熟悉,但是我对里面的运作比较好奇,例如bean的加载和使用,和我们定义的配置文件有什么联系;又例如aop在什么时候起作用,原理又是怎样.经过一个了解后,整理了启动和执行流程,只是描述我在意的流程分支,并不是全部源码流程. 在说流程之前,有几个概念是需要了解的 StandardContext Tomcat中...

351

极智AI | 详解 ViT 算法实现

大家好,我是极智视界,本文详细介绍一下 ViT 算法的设计与实现,包括代码。

极智视界 5603

框架源码专题:SpringMVC的启动过程,执行流程

SpringMVC的启动流程

qq_1149513559的博客 299

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Spring 启动过程(原理)详细,springmvc加载流程springmvc执行流程 简略

  spring加载流程 1.监听器加载spring 2.加载配置文件 3.工厂生产实例化对象 4.放入ServletContext springmvc加载流程 1.Servlet加载(监听器之后即执行)Servlet的init() 2.加载配置文件 3.从ServletContext拿到spring初始化springmvc相关对象 4.放入ServletContext springmvc执行流...

linkin1989的博客 2020

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【springmvc 的请求流程一】:web服务器启动的时候和执行DispatcherServlet 中的init 方法,初始化springmvc 容器

总结: 1 当服务器启动的时候如果在里面配置了<load-on-startup>的话,就会在服务器启动的手自动加载init()方法,并且实例化servlet,但是如果没有配置,也会在DispatcherServlet第一次请求发出的时候执行DispatcherServlet的init 方法,处理化springmvc 容器 当web 服务器启动的时候会加载web.xml 文件 ...

qq_20610631的博客 1456

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

springmvc源码解析(一),springmvc容器加载的过程

文章目录了解springmvc启动流程 了解springmvc springmvc官网https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-servlet springmvc是基于spring的一个web层框架,同样也是web层框架的有struts,struts2等等,但是struts因为漏洞等问题,被慢慢淘汰了,现在基本都在用springmvc; 相信以前面试的时候总是背了springmvc的执行流

你就像甜甜的益达 728

spring MVC 启动过程及执行过程源码学习

最近学习了spring MVC 启动过程及执行过程源码,看了一些比较不错的资料,记录如下:SpringMVC 启动流程及相关源码分析SpringMVC DispatcherServlet执行流程及源码分析SpringMVC工作原理之:HandlerMapping和HandlerAdapter...

mafei6827的博客 1623

Spring的加载流程和SpringMVC的执行流程

2.spring 容器的启动加载流程 首先解析 spring.xml 配置文件,把其中 <bean> 解析为 BeanDefinition, 存入beanFactory <bean id="" class="" init-method="" destroy-method="" scope="" lazy-init=""> 把 BeanDefinition 中的定义读取...

We_chuan的博客 661

SpringMVC执行流程

SpringMVC及Tomcat的执行流程

Ives_WangShen的博客 175

springMvc概述——重点讲解核心的执行流程

本文基于SpringMVC核心执行流程进行源码分析,重点讲解了DispatcherServlet的工作机制。文章首先展示了SpringMVC经典执行流程图,随后通过源码详细解析了doDispatch()方法的处理流程,包括获取HandlerExecutionChain、适配器模式调用HandlerAdapter、拦截器链执行等关键步骤。特别强调了HandlerMapping和HandlerAdapter在服务器启动时的初始化过程,以及请求处理中数据绑定、视图渲染等核心环节。最后给出了SpringMVC从Se

蓝桉 936

【SpringMVC】源码解读-执行流程

这里我们看到,它通过遍历处理链当中的拦截器集合,执行拦截器当中的preHandle方法,如果所有都返回true,那么拦截器下标就会是拦截器个数-1,如果其中一个返回了false,就会去执行triggerAfterCompletion方法,也就是执行已经执行过的拦截器的AfterCompletion方法。的类,在上面,我们说过,这个类,其实就是保存了Controller的BeanName和请求路径对应的类中的方法。这个方法最终简化后,也就是执行这个方法,点进去之后我们会发现这是一个空的方法,但是。

shenqibaobao的博客 953

SpringMVC-web项目和HttpInvoker

&amp;amp;amp;amp;lt;context:component-scan base-package=&amp;amp;amp;quot;com.gdl.service&amp;amp;amp;quot; /&amp;amp;amp;amp;gt; 从Spring提供的参考手册中我们得知该配置的功能是扫描配置的base-package包下的所有使用了@Component注解的类,并且将它们自动注册到容器中,同时也扫描@Controller,@Service,@Re

define_us的专栏 599

SpringMVC 启动流程及相关源码分析

你要知道的SpringMVC启动流程和源码分析都在这里 转载请注明出处 http://www.jianshu.com/p/dc64d02e49ac 本系列文章主要根据源码讲解SpringMVC的启动过程,以及相关重要组件的源码分析。阅读此系列文章需要具备Spring以及SpringMVC相关知识。本文将分以下几篇文章进行讲解,读者可按需查阅。 SpringMVC 启动流程及相关源码分析 S...

键小盘的博客 248

SpringMVC的执行流程

spring容器的启动加载流程 首先解析配置文件spring.xml,把其中的&amp;lt;bean&amp;gt;解析为BeanDefinition对象并存入BeanFactory;把BeanDefinition中的定义读取到一个map集合中管理起来了,但还没有创建bean对象; &amp;lt;bean id=&quot;&quot; calss=&quot;&quot; init-method=&quot;&quot; de

mashaokang1314的博客 237

SpringBoot启动流程及其原理

SPRINGBOOT启动流程及其原理 Spring Boot、Spring MVC 和 Spring 有什么区别? 一 springboot启动原理及相关流程概览 二 springboot的启动类入口 三 单单是SpringBootApplication接口用到了这些注解   1)@Configuration注解   2)@ComponentScan注解 3)@EnableAutoConfiguration AutoConfigurationPackage注解: ...

zzk00007的博客 4727
上一篇: springboot自动配置
下一篇: mybatis启动与执行流程
vmaps
博客等级 码龄17年 424粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值