您的位置:首頁技術文章
文章詳情頁

java - SpringBoot 添加自定義的攔截器,卻不調用

瀏覽:158日期:2023-10-21 15:04:25

問題描述

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
国产综合久久一区二区三区