gpt4 book ai didi

java - Spring 拦截器适用于 xml 但不适用于配置类

转载 作者:行者123 更新时间:2023-11-29 09:03:43 24 4
gpt4 key购买 nike

我目前使用的拦截器是这样配置的 xml :

<mvc:interceptors>
<bean class="org.resthub.dashboard.BasicInterceptor" />
</mvc:interceptors>

但我想把它放在我的配置类中:

    @Configuration
@ComponentScan("org.resthub.dashboard")
@EnableWebMvc
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class WebAppConfig extends WebMvcConfigurerAdapter{

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new BasicInterceptor());
}

@Bean
public InternalResourceViewResolver setupViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}

但它不起作用,我不知道为什么。永远不会调用拦截器。

有什么想法吗?

谢谢

edit :这里是 BasicInterceptor

    package org.resthub.dashboard;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class BasicInterceptor extends HandlerInterceptorAdapter {

@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
super.postHandle(request, response, handler, modelAndView);

System.out.println("INTERCEPTORORRR§§§§§§");
if (modelAndView != null && modelAndView.getModelMap() != null) {
...
}
}

}

最佳答案

看起来你的配置是正确的,至少如果你已经确认它确实被拾取了。但是,问题可能是在请求期间发生某些事情导致 postHandle 不被执行。确保在请求执行期间没有抛出异常。并且要验证是否确实使用了拦截器,您可以实现 preHandleafterCompletion 并查看是否执行了这些方法。

关于java - Spring 拦截器适用于 xml 但不适用于配置类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16081861/

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