2010-08-10 10 views
5

Quello che mi piacerebbe fare è avere una classe di servizio comune che ha vari metodi come "ricerca" "retriveByID" ecc. Idealmente questa classe consumerebbe i parametri del servizio e popolerebbe un oggetto richiesta e passerà all'origine dati appropriata handler.Posso usare Spring's @RequestMapping e BeanNameUrlHandlerMapping in congiunzione l'un l'altro per mappare un URL al metodo?

Desidero creare un'istanza di una classe di servizio come bean Spring con diversi gestori di richieste in base all'oggetto di dominio ricercato. Quindi, utilizzando bean BeanNameUrlHandlerMapping, viene richiamata una classe di servizio diversa in base all'URL.

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

mio problema è che quando provo a fare questo, non posso usare le annotazioni livello di metodo RequestMapping per selezionare il metodo appropriato della classe di servizio.

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

In alternativa è possibile iniettare valori di annotazione tramite le definizioni di bean?

UPDATE C'è anche un articolo di SpringSource su questo argomento: http://blog.springsource.com/2008/03/23/using-a-hybrid-annotations-xml-approach-for-request-mapping-in-spring-mvc/

risposta

3

rimasto molto sorpreso di apprendere che effettivamente funziona. Basta rimuovere la barra finale:

@RequestMapping("*/search") 

E questo funziona anche:

@RequestMapping("search") 
+0

Questo è quello che ho pensato, anche, ma non ho potuto trovare nella documentazione. – skaffman

+1

non hai nemmeno bisogno del carattere jolly funziona: @RequestMapping ("/ search") – nialloc

Problemi correlati