Spring面试题, 介绍下 Spring MVC 的核心组件?
Spring面试题, 介绍下 Spring MVC 的核心组件?
QA
Step 1
Q:: 介绍下 Spring MVC 的核心组件?
A:: Spring MVC 的核心组件包括:DispatcherServlet、HandlerMapping、Controller、ViewResolver、ModelAndView 等。
1.
DispatcherServlet:前端控制器,负责接收请求并将其分发给相应的处理器。
2.
HandlerMapping:处理器映射器,根据请求的 URL 查找对应的处理器。
3.
Controller:处理请求的控制器,包含业务逻辑。
4.
ViewResolver:视图解析器,将逻辑视图名解析为具体的视图。
5.
ModelAndView:包含模型数据和视图名,用于返回响应。
Step 2
Q:: 什么是 DispatcherServlet?它的作用是什么?
A:: DispatcherServlet 是 Spring MVC 的前端控制器(Front Controller),它负责接收所有的 HTTP 请求,并将其分发给适当的处理器(Controller)。它的主要作用包括:
1.
初始化 Web 应用程序上下文。
2.
将请求路由到合适的处理器。
3.
处理控制器返回的结果,并根据 ViewResolver 解析视图。
4.
执行视图渲染,将响应返回给客户端。
Step 3
Q:: 如何配置 Spring MVC?
A:: Spring MVC 的配置通常分为 XML 配置和 Java 配置(基于注解)。
1. XML 配置:在 web.xml 文件中配置 DispatcherServlet,并在 spring-mvc.
xml 文件中配置组件(如视图解析器、处理器映射器等)。
2. Java 配置:使用 @Configuration 注解配置类,利用 @
EnableWebMvc 注解启用 Spring MVC,定义一个继承 WebMvcConfigurerAdapter 的配置类来注册视图解析器和其他组件。
Step 4
Q:: 什么是 @Controller 和 @
RestController 注解?
A:: @
Controller 注解用于标记一个类为 Spring MVC 的控制器,处理 HTTP 请求并返回视图。
@RestController 注解是 @Controller 和 @
ResponseBody 的组合,表示该控制器直接返回对象,并通过消息转换器将对象转换为 JSON 或 XML 格式。
Step 5
Q:: 解释下 Spring MVC 的工作流程
A:: Spring MVC 的工作流程如下:
1.
客户端发送请求到 DispatcherServlet。
2.
DispatcherServlet 调用 HandlerMapping 查找处理器。
3.
DispatcherServlet 调用适当的处理器(Controller)处理请求。
4.
Controller 处理请求并返回 ModelAndView 对象。
5.
DispatcherServlet 调用 ViewResolver 解析视图。
6.
View 渲染模型数据,生成最终的 HTML 响应。
7.
DispatcherServlet 将响应返回给客户端。