一个工作2年的粉丝在面试的时候,面试官要求他说Spring MVC的执行流程。
他没回答上来,错过了这个offer。
这个问题在我之前整理的大厂面试指南里面,有标准的回答,大家可以在文章尾端扫二维码领取。
问题解析
Spring MVC的执行流程,一个面试频率超级高的问题,但是缺难倒了无数的程序员。
这个问题的考察范围主要是3~5年,甚至5年以上都会问到。和它同类型的问题还有Bean的加载过程、IOC的原理等。
由于Spring MVC是基于Jsp/Servlet之上做的封装,并为开发人员提供了MVC的分层设计以及更加友好的开发模型。
所以我认为大家都应该去把Spring MVC的整个执行流程梳理一遍。
问题答案
Spring MVC的工作流程可以分为几个步骤
-
用户发起请求,请求先被Servlet拦截转发给Spring MVC框架
-
Spring MVC里面的DispatcherSerlvet核心控制器,会接收到请求并转发给HandlerMapping
-
HandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller类,不过这里如果有配置拦截器,就会按照顺序执行拦截器里面的preHandle方法
-
找到匹配的Controller以后,把请求参数传递给Controller里面的方法
-
Controller中的方法执行完以后,会返回一个ModeAndView,这里面会包括视图名称和需要传递给视图的模型数据
-
视图解析器根据名称找到视图,然后把数据模型填充到视图里面再渲染成Html内容返回给客户端
总结
好了,今天的分享就到这里结束了
如果喜欢我的作品,记得点赞、收藏、关注
另外,我将所有Java面试系列制作成了30W字的面试宝典。
【领取面试文档可以点击文章底部名片,无套路免费赠送给大家!】
需要高手面试文档面试文档的小伙伴可以扫描下方二维码
↓↓↓↓↓↓↓↓↓↓↓↓↓