【问题标题】:@RequestMapping for @Component Bean@Component Bean 的 @RequestMapping
【发布时间】:2013-03-11 18:35:12
【问题描述】:
只是一个简单的问题。 @RequestMapping 是否仅适用于 @Controller 类。我正在尝试使用@RequestMapping 在我的应用程序中映射@Component bean,并且它总是抛出 noHandlerFound No mapping found for HTTP request with URI
【问题讨论】:
标签:
spring
jsp
jakarta-ee
spring-mvc
【解决方案1】:
非常正确,您只能在 @Controller 注释类上使用 @RequestMapping。来自@Controller 类的javadoc:
基本控制器接口,代表一个接收 HttpServletRequest 和 HttpServletResponse 实例的组件,就像一个 HttpServlet [...]
此外,@Controller 扩展 @Component bean,javadoc:
[@Component] 表示带注释的类是“组件”。在使用基于注释的配置和类路径扫描时,此类类被视为自动检测的候选对象。
换句话说,@Component(及其子注解 @Controller)是使类成为 Spring bean 的原因,但只有 @Controller 注解处理 @RequestMapping 和其他 HTTP 相关操作。
在 Spring reference documentation 中有更多关于 stereotype annotations 的信息。