我正在使用带有<mvc:annotation-driven />
我已经实现了自己的映射处理程序,扩展了DefaultAnnotationHandlerMapping,但我不确定如何使用它。我已经宣布这样:
<bean class="es.kcsolutions.boulevard.DispatcherMappingHandler" />
它有效,但是,显然,DefaultAnnotationHandlerMapping也可以在我之前工作。有没有办法禁用它并只使用我的?
感谢。
答案 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>