明天我给大家介绍一下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,如果大家还有其余疑难,能够在评论区留言。如果本次面试解析对你有帮忙,请动动手指一键三连分享给更多的人。关注我,面试不再难!
往期视频曾经整顿成文档模式,须要的小伙伴点个关注,点击下方名片!