今天我给大家介绍一下Spring MVC的详细执行流程 。我把Spring MVC的执行流程划分为三个阶段,配置阶段、初始化阶段和运行阶段 。
文章插图
我整理了一张完整的执行流程图,需要高清图的小伙伴可以私信我 。下面详细介绍每个阶段的执行细节 。
1、第一阶段:配置阶段配置阶段,主要是完成对xml配置和注解配置 。
具体步骤如下:
首先,从web.xml开始,配置DispatcherServlet的url匹配规则和Spring主配置文件的加载路径
然后,就是配置注解,比如@Controller、@Service、@Autowrited以及@RequestMApping等 。
2、第二阶段:初始化阶段初始化阶段,主要是加载并解析配置信息以及IoC容器、DI操作和HandlerMapping的初始化 。
具体步骤如下:
首先,Wer容器启动以后,会由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可以获得用户请求带过来的信息,通过response可以往浏览器端输出响应结果 。
然后,根据request中获得的请求url,可以从HandlerMapping中找到对应Method 。
接着,还是利用反射调用方法,将获得方法调用的返回结果 。
最后,将返回结果通过response输出到浏览器,用户就可以看到响应结果 。
都已经看到这里了,大家是不是觉得Spirng MVC执行流程非常简单?
我是被编程耽误的文艺Tom,如果大家还有其他疑问,可以在评论区留言 。如果本次面试解析对你有帮助,请动动手指一键三连分享给更多的人 。关注我,面试不再难!
关注微信公众号『 Tom弹架构 』回复“Spring”可获取完整源码 。 。
本文为“Tom弹架构”原创,转载请注明出处 。技术在于分享,我分享我快乐!
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力 。关注微信公众号『 Tom弹架构 』可获取更多技术干货!
【请简述Spring MVC的执行流程】
推荐阅读
- 发型|女人不想成为“黄脸婆”,请坚持这几个习惯,就算老了也很迷人
- 家庭版 个人中国电信宽带申请公网IP地址方法
- 孕妇|孕期只能用“孕妇专用”?妇产科医生:请收好孕期护肤伪科学指南
- 简述红茶的特点,六大茶类的冲泡方法及特点
- 请问如何泡红茶,柠檬泡红茶怎么喝
- 熬夜手写个SpringMVC框架
- 简述关于containerd设置代理
- SpringBoot整合MybatisPlus数据自动填充
- Nginx转发K8S、kubesphere的Ingress的WebSocket 请求时的不同配置
- Spring AOP 切点详解