2010-06-04 40 views
5

我正在使用Spring MVC和<mvc:annotation-driven />Spring MVC:禁用DefaultAnnotationHandlerMapping

我已經實現了我自己的映射處理程序,擴展了DefaultAnnotationHandlerMapping,但我不知道如何使用它。我已經宣佈它是這樣的:

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

它可以工作,但很明顯,DefaultAnnotationHandlerMapping也可以工作,並且總是在我之前。有沒有辦法禁用它並只使用我的?

謝謝。

回答

3

我的建議是完全刪除<mvc:annotation-driven />。它並沒有做任何特別有用的事情 - 它所聲明的大部分bean已經存在。如果你想聲明自己的處理程序映射或處理程序適配器,它就會阻礙它。

因此,拿出來,申報自己的DefaultAnnotationHandlerMapping豆,它應該工作。無需在99.9%的案例中訂購。

-1

如果您取出DefaultAnnotationHandlerMapping的任何顯式聲明,那麼您的自定義映射器應該在調度程序中將其替換。 (根據javadoc)如果您需要/想要多個映射,則可以通過設置其Order屬性來控制它們。低階數字首先執行。

<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在其構造函數中沒有order屬性 – 2012-10-21 15:06:52