Могу ли я использовать Spring'sReReestMapping и BeanNameUrlHandlerMapping в сочетании друг с другом для сопоставления URL-адреса с методом? - PullRequest
5 голосов
/ 10 августа 2010

То, что я хотел бы сделать, это иметь общий класс Service, который имеет различные методы, такие как «поиск», «retriveByID» и т. Д. В идеале этот класс будет использовать параметры службы и заполнять объект запроса и передавать его в соответствующий источник данных.обработчик.

Я хочу создать экземпляр класса обслуживания в виде bean-компонента Spring с различными обработчиками запросов в зависимости от объекта поиска.Затем с помощью bean-компонента BeanNameUrlHandlerMapping вызовите другой класс Service на основе URL-адреса.

<bean name="/sequence/*" class="org.dfci.cccb.services.SearchServiceImpl">
    <property name="searchHandler">
     ....

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

@RequestMapping("*/search/")
QueryResult search(...

В качестве альтернативы возможно ли вводить значения аннотаций через определения бинов?

ОБНОВЛЕНИЕ На эту тему также есть статья Springsource: http://blog.springsource.com/2008/03/23/using-a-hybrid-annotations-xml-approach-for-request-mapping-in-spring-mvc/

1 Ответ

3 голосов
/ 10 августа 2010

Был очень удивлен, узнав, что это на самом деле работает. Просто удалите косую черту:

@RequestMapping("*/search") 

И это тоже работает:

@RequestMapping("search") 
...