gpt4 book ai didi

java - 混合注释时 Spring MVC 拦截器停止工作

转载 作者:行者123 更新时间:2023-12-01 12:53:36 25 4
gpt4 key购买 nike

我有一个 Web 应用程序,我们停止支持 IE 7。为了通知用户此更改,我们有一个 Spring MVC HandlerInterceptorAdapter负责将用户重定向到警告网址。

这是相关的部署描述符(web.xml)内容:

<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/web-servlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

此应用程序仅使用老式 Spring MVC Controller ,即没有注释;最近,我必须使用以下 XML 的注释来配置 Controller :

<beans>
<!-- ... -->
<!-- A lot of beans and controllers using Classic Spring MVC -->

<bean id="browserVersionInterceptor" class="...BrowserVersionInterceptor" />

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="detectHandlersInAncestorContexts" value="true" />
<property name="interceptors">
<list>
<ref bean="browserVersionInterceptor" />
</list>
</property>
</bean>
<beans>
<context:annotation-config />
<bean id="mvcAnnotationConfig"
class="....MvcAnnotationConfig">
</bean>
</beans>
</beans>

在该配置中,我设置了 Controller 的组件扫描:

@Configuration
@EnableWebMvc
@ComponentScan("package.to.controllers")
public class MvcAnnotationConfig {
//...not much here
}

应用此更改后,我发现文件前一部分中声明的拦截器不起作用。

以及新创建的带有注释的 Controller :

@Controller
@RequestMapping("/Tickets.html")
public class SupportProcessController {

@RequestMapping(method = GET)
public ModelAndView show() {...}

@ResponseBody
@RequestMapping(method = POST, produces = "application/json")
public Object apply() {...}
}

知道为什么会发生这种情况吗?

最佳答案

如果您的 Controller 是使用 @ComponentScan 声明的注释,您可以尝试使用 <mvc:interceptors>阻止您的 xml 配置。像这样的东西:

<mvc:interceptors>
<ref bean="browserVersionInterceptor"/>
</mvc:interceptors>

但也要阅读文档...

关于java - 混合注释时 Spring MVC 拦截器停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041765/

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