Java 面试题
目录

基于 Java 的 Spring MVC 的核心组件有哪些?

· 约 3 分钟读完 · 第 189 / 274 章

推荐答案

Spring MVC 的核心组件包括:

  1. DispatcherServlet:前端控制器,负责接收请求并将请求分发给相应的处理器。
  2. HandlerMapping:负责根据请求的 URL 找到对应的处理器(Controller)。
  3. Controller:处理请求并返回模型和视图。
  4. ModelAndView:封装了模型数据和视图信息。
  5. ViewResolver:负责根据视图名称解析出具体的视图对象。
  6. View:负责渲染模型数据,生成最终的响应内容。
  7. HandlerAdapter:负责调用处理器(Controller)的方法,并处理返回值。
  8. HandlerInterceptor:拦截器,可以在请求处理前后执行一些逻辑。

本题详细解读

1. DispatcherServlet

DispatcherServlet 是 Spring MVC 的核心组件之一,它充当了前端控制器的角色。所有的请求都会首先到达 DispatcherServlet,然后由它来决定将请求分发给哪个处理器(Controller)进行处理。

2. HandlerMapping

HandlerMapping 负责根据请求的 URL 找到对应的处理器(Controller)。Spring MVC 提供了多种 HandlerMapping 实现,如 BeanNameUrlHandlerMapping、RequestMappingHandlerMapping 等。

3. Controller

Controller 是处理请求的核心组件,它负责处理具体的业务逻辑,并返回一个 ModelAndView 对象,其中包含了模型数据和视图信息。

4. ModelAndView

ModelAndView 是一个封装了模型数据和视图信息的对象。模型数据通常是一个 Map,包含了需要在视图中展示的数据;视图信息则是一个字符串,表示视图的名称。

5. ViewResolver

ViewResolver 负责根据视图名称解析出具体的视图对象。Spring MVC 提供了多种 ViewResolver 实现,如 InternalResourceViewResolver、XmlViewResolver 等。

6. View

View 是负责渲染模型数据的组件,它根据模型数据生成最终的响应内容。常见的 View 实现包括 JstlView、ThymeleafView 等。

7. HandlerAdapter

HandlerAdapter 负责调用处理器(Controller)的方法,并处理返回值。Spring MVC 提供了多种 HandlerAdapter 实现,如 RequestMappingHandlerAdapter、SimpleControllerHandlerAdapter 等。

8. HandlerInterceptor

HandlerInterceptor 是拦截器,可以在请求处理前后执行一些逻辑。常见的应用场景包括权限验证、日志记录等。Spring MVC 提供了 HandlerInterceptor 接口,开发者可以通过实现该接口来定义自己的拦截器。

这些组件共同协作,构成了 Spring MVC 的核心架构,使得开发者能够轻松地构建灵活、可扩展的 Web 应用程序。