Используя Spring 3.0.2.RELEASE. У меня есть 2 контроллера в пакете com.myCompany. Контроллеры активируются с помощью Component-scan
<context:component-scan base-package="com.myCompany" />
, затем у меня есть перехватчик, привязанный к 2 контроллерам через
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="myInterceptor"/>
</list>
</property>
</bean>
. Как я могу привязать перехватчик только к одному конкретному контроллеру или только к определенным методам внутри контроллера? {{1 }} Справочная информация: я хочу проверить URL-адрес, содержащий определенные параметры
Когда вы вводите перехватчики в bean-компонент HandlerMapping
, эти перехватчики применяются к каждому обработчику, отображаемому этим HandlerMapping
. Это было прекрасно в дни, предшествующие аннотации, поскольку вам нужно было просто настроить несколько bean-компонентов HandlerMapping
. Однако с аннотациями у нас обычно есть один DefaultAnnotationHandlerMapping
, который отображает все, поэтому эта модель не работает.
Решением является использование
, где вы явно сопоставляете пути к bean-компонентам-перехватчикам. См. документы и этот пример:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/secure/*"/>
<bean class="org.example.SecurityInterceptor" />
</mvc:interceptor>
</mvc:interceptors>