Spring @Controllers在根应用程序上下文中声明

时间:2011-10-07 14:42:24

标签: spring spring-mvc

Spring Web应用程序有两个上下文--Web上下文(子)和根上下文(父)。如果在@Controller(Web上下文)中定义了dispatcher-servlet.xml bean,一切都很好。

但是如果控制器bean是在父上下文中定义的(applicationContext.xml),则控制器无法识别 - 即它们的映射未配置,因此当您尝试打开此类中定义的/foo/bar时控制器,找不到路径。

问题是:无论bean在何处定义,如何使控制器映射得到解析。

P.S。我知道我可以将声明移到子上下文中,但我不想因为超出这个问题范围的原因而这样做。

1 个答案:

答案 0 :(得分:5)

DefaultAnnotationHandlerMapping具有detectHandlersInAncestorContexts属性,可启用所需的行为。