ARTICLE · 1056454
DispatcherServlet源码分析1
DispatcherServlet源码分析1
【Spring MVC 的核心前端控制器】
你可以把它想象成机场的”总调度中心”或者公司的”前台接待”。
所有的用户请求(HTTP Request)首先都会到达这里。
它自己不处理具体的业务逻辑,而是负责”调度”:
1.看看这个请求该交给哪个 ControLLer(处理器)去处理。
2.找到对应的 Controller 后,调用它处理业务。
3.拿到结果后,再找合适的 View(视图)渲染成页面或 JSON 返回给用户。
=== 源码架构分析 ===
1.继承关系:
Dispatcherservlet -> Frameworkservlet -> HttpservletBean -> Httpservlet
HttpServlet:证明它本质上是一个标准的 Java SerVLet,运行在 Tomcat 等 Web 容器中。
FrameworkServlet:负责整合 Spring Ioc 容器,初始化 WebApplicationContext.
DispatcherServlet:负责实现具体的 MVC 调度逻辑(如核心的 doDispatch 方法)。
2.核心组件(在 onRefresh 初始化时会加载以下策略组件):
HandlerMapping:处理器映射器(决定请求交给哪个 Controller)。
HandlerAdapter:处理器适配器(负责调用 Controller 的方法).
ViewResolver:视图解析器(负责把逻辑视图名解析为真正的 View 对象)。
HandlerExceptionResolver:全局异常处理器。
LocaleResolver:国际化/本地化解析器。
MultipartResolver:文件上传解析器。