说说 Spring MVC 的执行流程?

高频面试题:说说 Spring MVC 的执行流程?
大家好,我是浮生,一个工作了十四年的java程序员!
昨天,一个工作 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,spring,mvc,java)