Spring @Controllers, объявленный в контексте корневого приложения - PullRequest
6 голосов
/ 07 октября 2011

Веб-приложения Spring имеют два контекста - веб-контекст (дочерний) и корневой контекст (родительский).Если @Controller bean определены в dispatcher-servlet.xml (веб-контекст), все в порядке.

Но если bean-компоненты контроллера определены в родительском контексте (applicationContext.xml), то контроллеры не распознаются - т.е. их отображения не настроены, поэтому при попытке открыть /foo/bar, определенный в таком контроллере, путь не найден.

Вопрос заключается в следующем: как выполнить сопоставление контроллера для анализа независимо от того, где определены bean-компоненты.

PS Я знаю, что могу переместить объявления вдочерний контекст, но я не хочу этого делать по причинам, выходящим за рамки этого вопроса.

1 Ответ

5 голосов
/ 07 октября 2011

DefaultAnnotationHandlerMapping имеет свойство detectHandlersInAncestorContexts, которое обеспечивает желаемое поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...