Spring MVC:禁用DefaultAnnotationHandlerMapping

时间:2010-06-04 17:06:17

标签: java spring spring-mvc

我正在使用带有<mvc:annotation-driven />

的Spring MVC

我已经实现了自己的映射处理程序,扩展了DefaultAnnotationHandlerMapping,但我不确定如何使用它。我已经宣布这样:

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

它有效,但是,显然,DefaultAnnotationHandlerMapping也可以在我之前工作。有没有办法禁用它并只使用我的?

感谢。

2 个答案:

答案 0 :(得分:3)

我的建议是完全删除<mvc:annotation-driven />。它并没有真正做任何特别有用的事情 - 它声明的大多数bean已经存在。如果你想声明自己的处理程序映射或处理程序适配器,它只会妨碍你。

所以把它拿出来,声明你自己的DefaultAnnotationHandlerMapping bean,它应该可行。无需在99.9%的情况下处理订单。

答案 1 :(得分:-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>