您的位置:首页技术文章
文章详情页

java - SpringBoot 添加自定义的拦截器,却不调用

【字号: 日期:2023-10-21 15:04:25浏览:52作者:猪猪

问题描述

1.问题:

要添加一个自定义处理Token的问题,现在实现了方法,却发现拦截器没有被调用。我是在自定义的HandlerInterceptorAdapter里面重写了preHandle方法。并把这个自定义的HandlerInterceptorAdapter添加到了自定义的WebMvcConfigurerAdapter,在WebMvcConfigurerAdapter添加@Configuration注解,但是却没有被调用!

2.代码:自定义的HandlerInterceptorAdapter的AccessTokenVerifyInterceptor:

@Componentpublic class AccessTokenVerifyInterceptor extends HandlerInterceptorAdapter {private Logger logger = LoggerFactory.getLogger(AccessTokenVerifyInterceptor.class);@Autowired private FFAccessTokenService tokenService;@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// TODO Auto-generated method stublogger.info('AccessToken executing ...');return true;} }

自定义的WebMvcConfigurerAdapter类FFWebMvcConfigurer:

@Configurationpublic class FFWebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) {// TODO Auto-generated method stubregistry.addViewController('/error').setViewName('404.html');registry.setOrder(Ordered.HIGHEST_PRECEDENCE); super.addViewControllers(registry);} @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.setUseSuffixPatternMatch(false); super.configurePathMatch(configurer); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new AccessTokenVerifyInterceptor()) .addPathPatterns('/**') .excludePathPatterns('/access-token'); super.addInterceptors(registry); System.out.println('开始开始咯。。。。');} }

3.希望各路大神,帮小弟指点指点,感谢感谢!

问题解答

回答1:

/**去掉一个*试试

回答2:

在启动类加上@ServletComponentScan

回答3:

那你应该把 HandlerInterceptorAdapter 贴出来看看还有就是 2 中那个 @Component 注解 是没有意义的。

回答4:

不会啊,按照你的代码写了一个简单的Demo,拦截器是可以调用到的。

@Configurationpublic class FFWebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) {registry.addViewController('/error').setViewName('404.html');registry.setOrder(Ordered.HIGHEST_PRECEDENCE);super.addViewControllers(registry); } @Override public void configurePathMatch(PathMatchConfigurer configurer) {configurer.setUseSuffixPatternMatch(false);super.configurePathMatch(configurer); } @Override public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new AccessTokenVerifyInterceptor()).addPathPatterns('/**').excludePathPatterns('/access-token');super.addInterceptors(registry);System.out.println('开始开始咯。。。。'); }}

public class AccessTokenVerifyInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println('preHandle...');return true; }}

java - SpringBoot 添加自定义的拦截器,却不调用

标签: java