RequestMappingHandlerMapping的forHandler方法对于RequestMapping和Controller注释都返回true

时间:2014-11-03 07:05:00

标签: java spring

我正在研究Dispatcher Servlet代码。在这里,我发现调度程序servlet使用HandlerMapping来为请求选择处理程序。此外,RequestMappingHandlerMapping用作HandlerMapping的实现。现在,如果所考虑的bean具有@Controller或@RequestMapping注释,则RequestMappingHandlerMapping的isHandlerMethod返回true。如果某个bean只有在类级别应用的@RequestMapping注释,它仍然会被视为Handler?。 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

@RequestMapping和@Controller注释具有不同的含义。请求映射用于决定使用哪个类/方法处理对特定URL的请求。如果你查看@Controller注释的来源,你会发现它是用@Component本身注释的。这样它就可以用来设置组件扫描,将组的实例注册为bean。

我正在考虑,因为这些注释通常一起使用,所以这样做可以实现微小的性能提升。此外,您可以通过java config或xml以不同方式声明控制器。

修改 我已经用java config中声明的控制器bean做了一个快速原型,没有@Controller注释。答案是肯定的,即使该类没有注释,该方法也将用于处理请求。