2010-06-04 5 views
5

J'utilise Spring MVC avec <mvc:annotation-driven />Spring MVC: désactiver DefaultAnnotationHandlerMapping

J'ai mis mon propre gestionnaire de cartographie DefaultAnnotationHandlerMapping extension, mais je ne suis pas sûr de savoir comment l'utiliser. Je l'ai déclaré comme ceci:

<bean class="es.kcsolutions.boulevard.DispatcherMappingHandler" /> 

Il fonctionne, mais, évidemment, DefaultAnnotationHandlerMapping fonctionne aussi, et toujours avant le mien. Y at-il un moyen de le désactiver et d'utiliser seulement le mien?

Merci.

Répondre

3

Mon conseil serait d'enlever complètement le <mvc:annotation-driven />. Cela ne fait rien de particulièrement utile - la plupart des haricots déclarés sont déjà là. Et dans les cas où vous souhaitez déclarer votre propre mappage de gestionnaire ou adaptateur de gestionnaire, cela devient juste un obstacle.

Alors sortez-le, déclarez votre propre haricot DefaultAnnotationHandlerMapping, et cela devrait fonctionner. Pas besoin de déranger avec la commande dans 99,9% des cas.

-1

Si vous supprimez des déclarations explicites du DefaultAnnotationHandlerMapping, votre mappeur personnalisé est censé le remplacer dans le répartiteur. (selon javadoc) Si vous avez besoin de plusieurs mappages, vous pouvez les contrôler en définissant leur propriété Order. Les numéros de commande inférieurs s'exécutent en premier.

<bean class="es.kcsolutions.boulevard.DispatcherMappingHandler"> 
<property name="order" value="0"/> 
</bean> 

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
<property name="order" value="1"/> 
</bean> 
+0

DefaultAnnotationHandlerMapping n'a pas de propriété order sur son constructeur –