说说 Spring MVC 的执行流程?

昨天,一个工作 2 年的粉丝在面试的时候,面试官要求他说 Spring MVC 的执行流程。
他没回答上来,错过了这个 offer。
这个问题在我之前整理的大厂面试指南里面,有标准的回答,大家可以去文章结尾中领取。

一、问题解析 

Spring MVC 的执行流程,一个面试频率超级高的问题,但是缺难倒了无数的程序员。
这个问题的考察范围主要是 3~5 年 ,甚至 5 年以上 都会问到。和它同类型的问题还有Bean 的加载过程、IOC 的原理等。
由于 Spring MVC 是基于 Jsp/Servlet 之上做的封装,并为开发人员提供了 MVC 的分层设计以及更加友好的开发模型。所以我认为大家都应该去把 Spring MVC 的整个执行流程梳理一遍。

二、问题总结

Spring MVC 的工作流程可以分为几个步骤
1. 用户发起请求,请求先被 Servlet 拦截转发给 Spring MVC 框架
2. Spring MVC 里面的 DispatcherSerlvet 核心控制器,会接收到请求并转发给HandlerMapping
3. HandlerMapping 负责解析请求,根据请求信息和配置信息找到匹配的 Controller类,不过这里如果有配置拦截器,就会按照顺序执行拦截器里面的 preHandle 方法
4. 找到匹配的 Controller 以后,把请求参数传递给 Controller 里面的方法
5. Controller 中的方法执行完以后,会返回一个 ModeAndView,这里面会包括视图名称和需要传递给视图的模型数据
6. 视图解析器根据名称找到视图,然后把数据模型填充到视图里面再渲染成Html内容返回给客端
以上就是我的理解!

说说 Spring MVC 的执行流程?_第1张图片

 

三、粉丝福利

最近很多同学问我有没有java学习资料,我根据我从小白到架构师多年的学习经验整理出来了一份 50W字面试解析文档、简历模板、学习路线图、java必看学习书籍 、 需要的小伙伴 可以关注我
公众号:“ 灰灰聊架构 ”, 回复暗号:“ 321 ”即可获取

你可能感兴趣的:(Java面试题,spring,mvc,java)