2010-06-04 779 views
5

estoy usando Spring MVC con <mvc:annotation-driven />Spring MVC: desactivar DefaultAnnotationHandlerMapping

he aplicado mi propio manejador de mapeo que se extiende DefaultAnnotationHandlerMapping, pero no estoy seguro de cómo usarlo. He declarado así:

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

funciona, pero, obviamente, DefaultAnnotationHandlerMapping trabaja demasiado y siempre antes que la mía. ¿Hay alguna forma de desactivarlo y usar solo el mío?

Gracias.

Respuesta

3

Mi consejo sería eliminar el <mvc:annotation-driven /> en total. En realidad, no hace nada particularmente útil: la mayoría de los beans que declara ya están allí. Y en los casos en los que desee declarar su propia asignación de manejador o adaptador de manejador, simplemente se interpondrá en el camino.

Así que sácalo, declara tu propio bean DefaultAnnotationHandlerMapping, y debería funcionar. No hay necesidad de ocuparse de ordenar en el 99.9% de los casos.

-1

Si saca cualquier declaración explícita de DefaultAnnotationHandlerMapping, entonces su mapeador personalizado se supone que debe reemplazarlo en el despachador. (de acuerdo con javadoc) Si necesita/desea más de una asignación, entonces las controla estableciendo su propiedad de Pedido. Los números de orden inferior se ejecutan primero.

<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 no tiene propiedad de orden en su constructor –