Spring MVC中基于注释的处理程序映射

时间:2018-12-27 21:17:39

标签: spring-mvc spring-boot

我想了解HandlerMapping如何在基于注释的Spring MVC应用程序中工作。与在基于XML的配置中工作时一样,我们有一个默认值,如果要使用其他实现,则必须在XML文件以及URL映射策略中对其进行定义。

要了解基于批注的Controller应用程序中的HandlerMapping,我遇到了 DefaultAnnotationHandlerMapping,以前在v3之前是默认值。 1和现在 当前使用RequestMappingHandlerMapping。因此,如果我们不使用基于XML的配置和URL映射策略,那么我想了解如何定义此HandlerMapping。我遇到的另一件事是HandlerAdapter。所以这两件事让我感到困惑。

请分步说明Dispatcher Servlet截获请求时如何找到要使用的HandlerMapping以及URL映射策略在基于注释的应用程序中如何工作。

1 个答案:

答案 0 :(得分:0)

您可以认为HandlerMapping确定应通过哪种方式/框架来处理请求/ URL(例如,使用@Controller处理?使用JSP处理?等)

HandlerAdapter驱动了处理此请求的实际工作流程,其中包含处理逻辑的实际实现。

高级逻辑:

  1. DispatcherServlet截获请求

  2. 找出哪个HandlerMapping可以处理此请求。有关匹配逻辑,请参考HandlerMapping#getHandler()。如果可以处理请求,它将返回一个通用对象(称为处理程序对象)。

  3. 找出哪些HandlerAdapter可以处理此处理程序对象(通过检查HandlerAdapter#supports())。如果HandlerAdapter可以处理,它将处理(通过HandlerAdapter#handle)。

相关问题