gpt4 book ai didi

java - Controller 可以指定使用哪些拦截器吗

转载 作者:行者123 更新时间:2023-11-30 08:27:56 25 4
gpt4 key购买 nike

我要移动现有的 (3.1.1) 网络 mvc Controller (称为 LoginController )使用注释,我有

<bean id="loginHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="licenseInterceptor" />
<ref bean="propertyInterceptor" />
<ref bean="localeChangeInterceptor" />
</list>
</property>
<property name="urlMap">
<map>
<!-- used to include references to my LoginController -->
<entry key="error" value-ref="error" />
</map>
</property>
<property name="order">
<value>1</value>
</property>
</bean>

我改变了我的 LoginController进行注释。其他一些类之前也有注释,因此它将使用现有的...

<bean id="requestMappingHandlerMapping"
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors">
<list>
<ref bean="licenseInterceptor" />
<ref bean="loginInterceptor" />
<ref bean="propertyInterceptor" />
</list>
</property>
</bean>

LoginController不能使用 loginInterceptor其他人使用,因为它是预登录 Controller但是登录后Interceptor .

我想知道的是,有没有办法告诉 Spring 这个特定的 Controller不应与特定 ( loginInterceptor ) Interceptor 一起使用?也许如果它(而且只有它)也可以使用 localeChangeInterceptor .

我尝试了什么

  • (适用于 Spring 3.2)添加 <mvc:interceptors>和他们的命名空间配置,但他们似乎不允许多个 bean 引用和 exclude-mapping是Spring 3.2,我是3.1.1
  • LoginInterceptor 中进行处理, 处理程序不是 LoginController 类型- 我能做到((HandlerMethod)handler).getBean() instanceof LoginController这可行,但它不漂亮或不灵活。

最佳答案

使用 spring mvc 命名空间,您可以执行以下操作:

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/login"/>
<ref bean="loginInterceptor"/>
</mvc:interceptor>
<!-- .. further interceptors -->
</mvc:interceptors>

这允许添加不应被特定拦截器拦截的路径。

mvc 命名空间添加到您的配置根元素..

xmlns:mvc="http://www.springframework.org/schema/mvc"

...和架构...

xsi:schemaLocation=" .....
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
...."

关于java - Controller 可以指定使用哪些拦截器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20517627/

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