spring如何将参数注入控制器方法

时间:2014-11-07 13:44:26

标签: java spring

public ModelAndView loginPage(HttpServletRequest request, Locale locale) {}

如您所知,Spring会在方法中注入HttpServletRequestLocale。我想知道 如何在窗帘后面完成?我的猜测是,有一个数据转换器系统在后面工作 获取http请求标头和正文数据,并将它们填充到给定的合适类中 在编码员的争论中。我是对的吗?

2 个答案:

答案 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中。