莫方教程网

专业程序员编程教程与实战案例分享

Spring MVC核心组件及其协作

在 Spring MVC 框架中,核心组件通过高度解耦的协作机制完成 Web 请求处理,形成一个灵活且可扩展的请求处理管道。以下是主要核心组件及其协作流程的详细解析:

核心组件概览

组件

职责

关键实现类

DispatcherServlet

前端控制器,统一接收所有请求并协调工作流

org.springframework.web.servlet.DispatcherServlet

HandlerMapping

请求与处理器(Handler)的映射关系(URL 到 Controller 方法的路由)

RequestMappingHandlerMapping, BeanNameUrlHandlerMapping

HandlerAdapter

执行 Handler 的实际工作,屏蔽不同 Handler 类型的差异

RequestMappingHandlerAdapter, HttpRequestHandlerAdapter

Handler

具体业务处理器(通常标注 @Controller 的方法)

用户编写的 Controller 类

ViewResolver

将逻辑视图名解析为实际视图实现

InternalResourceViewResolver, ThymeleafViewResolver

View

负责渲染输出(HTML/JSON/XML 等)

JstlView, MappingJackson2JsonView

HandlerInterceptor

面向切面的拦截器,实现 AOP 式控制

实现 HandlerInterceptor 接口的类

MultipartResolver

文件上传处理

StandardServletMultipartResolver

LocaleResolver

国际化支持

SessionLocaleResolver

ThemeResolver

主题管理

FixedThemeResolver

组件协作全流程

流程解析

  1. 请求接收与路由阶段
  1. DispatcherServlet 接受到 HTTP 请求
  2. 遍历所有注册的 HandlerMapping
  3. RequestMappingHandlerMapping 匹配 URL 和请求方法
  4. 返回包含拦截器链的 HandlerExecutionChain
  • 一个请求可能被多个 HandlerMapping 尝试匹配
  • RequestMappingHandlerMapping 处理注解式控制器(主流方案)
  • 返回的 HandlerExecutionChain 包含处理器+拦截器链


  1. 处理器执行阶段
  • RequestMappingHandlerAdapter:反射调用 @Controller 方法
  • HttpRequestHandlerAdapter:处理静态资源请求
  • 实现处理器与框架的解耦


  1. 视图解析与渲染阶段
  • REST 接口:HttpMessageConverter 直接序列化(JSON/XML)
  • 传统 MVC:视图技术组合(如 Thymeleaf + HTML)
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    滇ICP备2024046894号-1