2

只是一个简单的问题。仅@RequestMapping适用于@Controller类。我正在尝试使用它@Component在我的应用程序中映射一个 bean,@RequestMapping它总是抛出noHandlerFound No mapping found for HTTP request with URI

4

1 回答 1

4

非常正确,您只能@RequestMapping@Controller带注释的类上使用。从类的javadoc@Controller

基本控制器接口,表示接收 HttpServletRequest 和 HttpServletResponse 实例的组件,就像 HttpServlet [...]

此外,@Controller 扩展@Componentbean、javadoc

[@Component] 表示带注释的类是“组件”。在使用基于注释的配置和类路径扫描时,此类类被视为自动检测的候选对象。

换句话说,a @Component(及其子注解@Controller)是使类成为 Spring bean 的原因,但只有@Controller注解处理@RequestMapping和其他 HTTP 相关操作。

在 Spring参考文档中有更多关于构造型注解的信息。

于 2013-03-11T18:38:39.087 回答