只是一个简单的问题。 @RequestMapping
仅适用于@Controller
个类。我正在尝试使用@Component
在我的应用程序中映射@RequestMapping
bean,并且它总是抛出 noHandlerFound找不到带有URI的HTTP请求的映射
答案 0 :(得分:4)
非常正确,您只能在@RequestMapping
注释类上使用@Controller
。来自@Controller
类的javadoc:
基本控制器接口,表示接收HttpServletRequest和HttpServletResponse实例的组件,就像HttpServlet一样[...]
此外,@Controller
扩展 @Component
bean,javadoc:
[@Component]表示带注释的类是“组件”。在使用基于注释的配置和类路径扫描时,此类被视为自动检测的候选者。
换句话说,@Component
(及其子注释@Controller
)是使类成为Spring bean的原因,但只有@Controller
注释处理@RequestMapping
和其他与HTTP相关的操作。
Spring reference documentation中有关于构造型注释的更多信息。