public ModelAndView loginPage(HttpServletRequest request, Locale locale) {}
如您所知,Spring会在方法中注入HttpServletRequest
和Locale
。我想知道
如何在窗帘后面完成?我的猜测是,有一个数据转换器系统在后面工作
获取http请求标头和正文数据,并将它们填充到给定的合适类中
在编码员的争论中。我是对的吗?
答案 0 :(得分:2)
使用Spring MVC时,有许多部分需要解决映射HandlerMapping
和执行HandlerAdapter
的问题。
每个@Controller
都会针对@RequestMapping
带注释的方法进行扫描,这些方法会根据@RequestMapping
注释中提供的元数据映射到网址,这由RequestMappingHandlerMapping
完成类。
当请求到来时,特定方法与传入请求匹配。这个选定的方法传递RequestMappingHandlerAdapter
,它咨询所有方法参数。方法参数的实际处理留给不同的HandlerMethodArgumentResolver
实现(您也可以实现自己的实现)。
虽然会将HandlerMethodReturnValueHandler
委托给{{3}},但方法的返回值也会发生同样的情况。
答案 1 :(得分:0)
是的,你是对的。简而言之,应用程序中有一个入口点(可能有多个入口点),用于路由传入流量,将传入数据作为参数传递给方法。这称为前控制器模式。
Spring DispatcherServlet
是前端控制器模式的一种实现。 Spring中引用的Spring引用details the pattern,模式列在core Java EE patterns中。