Spring面试题, 能简单说说请求是如何找到对应的 controller 吗?
Spring面试题, 能简单说说请求是如何找到对应的 controller 吗?
QA
Step 1
Q:: Spring 请求是如何找到对应的 controller 的?
A:: Spring 通过 DispatcherServlet 拦截所有的请求,根据请求的 URL 匹配到具体的处理器(Handler),通常是一个 Controller。DispatcherServlet 首先会通过 HandlerMapping 查找请求对应的处理器,然后通过 HandlerAdapter 进行处理,最终返回 ModelAndView 交给 ViewResolver 解析视图,返回响应给客户端。
Step 2
Q:: Spring MVC 中 @
RequestMapping 注解的作用是什么?
A:: @
RequestMapping 注解用于映射请求的 URL 到具体的处理方法或类上。它可以用在类上表示所有方法共享相同的基础 URL,也可以用在方法上表示具体的请求 URL 和请求方法(GET、POST 等)。
Step 3
Q:: 如何处理 Spring MVC 中的异常?
A:: 可以使用 @ControllerAdvice 注解来定义全局异常处理类,该类可以包含使用 @ExceptionHandler 注解的方法来处理特定类型的异常。另外,可以在具体的 Controller 中使用 @
ExceptionHandler 注解来处理特定的方法抛出的异常。
Step 4
Q:: Spring MVC 中的 Interceptor 是什么?
A:: Interceptor(拦截器)是一种类似于过滤器的机制,用于在请求到达 Controller 之前和之后进行预处理和后处理。可以通过实现 HandlerInterceptor 接口来创建拦截器,并在配置文件中进行配置,或使用 @Component 和 @
Configuration 注解进行配置。
Step 5
Q:: 如何在 Spring 中实现文件上传功能?
A:: 可以使用 Spring 提供的 MultipartFile 类来实现文件上传功能。需要在配置文件中启用 multipart 解析器,然后在 Controller 中通过 MultipartFile 对象获取上传的文件并进行处理。