根据 Spring 3 文档IoC 容器,@Named
注解是等同于@Component
注解的标准。
由于@Repository
,@Service
和@Controller
are all @Component
,我尝试@Named
在我的 Spring MVC 应用程序中使用它们。它工作正常。但我发现替换的@Controller
似乎有一个错误。在控制器类中,最初是
@Controller
public class MyController{
...
}
它工作正常。当我@Controller
改为@Named
@Named
public class MyController{
...
}
它失败并出现错误:
“没有为带有 URI ... 的 HTTP 请求找到映射”。
但是,如果我@RequestMapping
按以下方式添加到课程中
@Named
@RequestMapping
public class MyController{
...
}
它会按预期工作。
对于@Repository
and @Service
,我可以简单地将它们替换@Named
为没有问题。但更换@Controller
需要额外的工作。我在配置中缺少什么吗?