Spring 面试题, 能简单说说请求是如何找到对应的 controller 吗?
Spring 面试题, 能简单说说请求是如何找到对应的 controller 吗?
QA
Step 1
Q:: 请求是如何找到对应的 Controller 的?
A:: 在 Spring 框架中,客户端的请求是通过 DispatcherServlet 来处理的。DispatcherServlet 是前端控制器,它拦截所有的 HTTP 请求。然后,根据请求的 URL 和配置的 HandlerMapping,将请求转发给适当的处理器(通常是一个 Controller)。Controller 的方法通过 @
RequestMapping 注解来映射特定的 URL 路径,因此当 DispatcherServlet 收到请求时,它会查找对应的 URL 映射,并调用相应的 Controller 方法。
Step 2
Q:: Spring MVC 中的 HandlerMapping 是什么?
A:: HandlerMapping 是 Spring MVC 的一个接口,用于定义如何将请求 URL 映射到具体的处理器(Handler)。在实际应用中,最常用的实现类是 RequestMappingHandlerMapping,它根据 @
RequestMapping 注解来映射 URL 路径。
Step 3
Q:: 什么是 DispatcherServlet?
A:: DispatcherServlet 是 Spring MVC 的核心组件,被称为前端控制器(Front Controller)。它的主要作用是接收所有的 HTTP 请求,然后将请求分派给适当的处理器进行处理,最终根据处理结果选择合适的视图进行渲染。
Step 4
Q:: 如何在 Spring MVC 中定义一个 Controller?
A:: 在 Spring MVC 中,Controller 是通过 @Controller 注解来定义的。一个 Controller 类包含处理客户端请求的方法,这些方法通常使用 @RequestMapping 或 @GetMapping、@
PostMapping 等注解来映射到特定的 URL 路径。