springMVC的执行流程
1.配置阶段:
主要完成对xml的配置注解的配置
从web.xml开始配置了DispatcherServlet的url匹配规则和spring主配置文件的一个加载路径
配置注解,比如说@Controller,@Service,@Autowrited以及@RequestMapping
2.初始化阶段
主要是加载并解析配置信息,以及IOC容器,还有DI操作和HandlerMapping的一个初始化
具体步骤如下
启动以后:会由Web容器自动调用DispatcherServlet的init()方法,然后在init()方法中,会初始化IOC容器
IOC容器其实就是一个Map
然后根据配置好的扫描包的路径,然后扫描出相关的类,并且使用反射对它进行实例化,然后缓存到IOC容器中,缓存后,spring容器将再次迭代扫描IOC容器中的实例
给需要自动赋值的属性自动赋值,比如加了@Autowrited的属性,最后去读取@RequestMapping的注解,获取他请求的url,然后将url和Method的建立一个一对一的映射关系并且缓存起来,
我们可以简单粗暴的理解成就是Map,它的key就是url,它的值就是Method
3.运行阶段
在spring启动以后就是等待用户请求然后完成内部的调度,并且响应结果
具体步骤如下
用户在浏览器输入url以后web容器会接收用户的请求
web容器会自动调用doGet()或者doPost()方法,然后从doGet()或者doPost()的方法中可以获得两个对象分别是request对象和response对象
通过request对象可以获得用户请求过来的信息,然后通过reqponse对象可以往浏览器输出后台响应的结果,然后根据request中获得的请求url,从HandlerMapping中去找到url对应Method,
然后接着就是利用反射去调用方法然后将方法的返回结果作为响应结果返回给浏览器,最后用户就可以看到我们想要得到的响应结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报