图解 Spring MVC 原理 源码 主流程 时序图

【MVC】

入口:web.xml
web.xml中<servlet/>中的<servlet-class/>配置org.springframework.web.servlet.DispatcherServlet
DispatcherServlet extends FrameworkServlet extends HttpServletBean extends HttpServlet

1、初始化

1-1:入口:HttpServletBean.init()–>FrameworkServlet.initServletBean()–>FrameworkServlet.initWebApplicationContext()–>configureAndRefreshWebApplicationContext()
初始化

1-2:configureAndRefreshWebApplicationContext()–>AbstractApplicationContext.refresh()–>FrameworkServlet.onRefresh(wac)
这个方法里面调用了AbatractApplication的refresh();模板方法,规定IOC初始化基本流程

1-3:FrameworkServlet.onRefresh(wac)–>DispatcherServlet.initStrategies()
初始化九大组件

2、运行

2-1:入口:DispatcherServlet.doService()–>doDispatch()–>getHandler()
从AbstractHandlerMapping.getHandler()中获取Handler,返回HandlerExecutionChain责任链,该对象封装了handler和interceptors

2-2:DispatcherServlet.getHandlerAdapter(mappedHandler.getHandler());
根据Handler获取HandlerAdapter

2-3:AbstractHandlerMethodAdapter.handle()–>invokeHandlerMethod()–>getModelAndView()
HandlerAdapter处理请求,返回ModelAndView

2-4:DispatcherServlet.processDispatchResult()–>DispatcherServlet.render()
–>viewResolver.resolveViewName()视图解析,返回View对象
–>view.render()通过response输出到浏览器

运行阶段可以按照从请求都响应的流程回答
1、请求到DispatchServlet(中央处理器)
2、通过HandlerMapping(映射处理器)返回HandlerExecutionChain(责任链)
3、通过HandlerAdapter(适配处理器)执行Handler,并返回ModelAndView
4、通过ViewResolver(视图解析器)返回View,然后进行视图渲染
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值