Используйте
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
Это позволит вам использовать аннотированные обработчики @RequestMapping вместе с настроенными обработчиками XML. Это было взято из документации API:
Если вы определяете пользовательский HandlerMapping
бобы в вашем DispatcherServlet
контекст, вам нужно добавить
DefaultAnnotationHandlerMapping bean
явно, так как обычай
Бобы HandlerMapping заменяют
стратегии отображения по умолчанию.
Я бы не использовал директивы пространства имен (например, mvc: annotation-driven) при попытке смешать и сопоставить XML-конфигурацию Spring MVC и конфигурацию аннотации. На самом деле, я стараюсь избегать директив пространства имен все вместе. Они плохо документированы и всегда менее эффективны, чем простое определение bean-компонентов непосредственно в вашей конфигурации XML. Кроме того, директивы пространства имен, как правило, обещают много («просто поместите это в свой XML-конфиг, и все будет работать»), но не доставляют, потому что не всегда понятно, как они работают, и это делает отладчик очень трудным.
Вот пример того, о чем я говорю в предыдущем абзаце. Скажем, вы хотите использовать некоторые перехватчики на ваших контроллерах, настроенных для аннотаций. Это довольно просто, если вы хотите использовать одинаковые перехватчики для каждого контроллера. Но если вы хотите использовать разные перехватчики для разных контроллеров (при использовании конфигурации на основе аннотаций), вы не можете сделать это.