gpt4 book ai didi

java - 仅将 Spring HandlerInterceptor 绑定(bind)到一个 Controller

转载 作者:IT老高 更新时间:2023-10-28 13:53:50 26 4
gpt4 key购买 nike

使用 Spring 3.0.2.RELEASE。我在 com.myCompany 包中有 2 个 Controller 。 Controller 通过组件扫描激活

<context:component-scan base-package="com.myCompany" />

然后我有一个拦截器通过

绑定(bind)到 2 个 Controller
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="myInterceptor"/>
</list>
</property>
</bean>

如何将拦截器绑定(bind)到一个特定的 Controller 或仅绑定(bind)到 Controller 内的某些方法?背景:我想检查它包含某些参数的 URL

Docu Link

最佳答案

当您将拦截器注入(inject) HandlerMapping 时bean,这些拦截器适用于由 HandlerMapping 映射的每个处理程序.这在注释前的日子里很好,因为您只需配置多个 HandlerMapping bean 。但是,对于注释,我们往往只有一个 DefaultAnnotationHandlerMapping映射一切,所以这个模型不起作用。

解决方法是使用<mvc:interceptors> ,您在其中显式地将路径映射到拦截器 bean。见 docs ,而这个例子:

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/secure/*"/>
<bean class="org.example.SecurityInterceptor" />
</mvc:interceptor>
</mvc:interceptors>

关于java - 仅将 Spring HandlerInterceptor 绑定(bind)到一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3469489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com