亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

java - SpringBoot 新增自訂的攔截器,卻不調(diào)用
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-06-30 09:54:03
0
4
1145

1.問(wèn)題:

要添加一個(gè)自定義處理Token的問(wèn)題,現(xiàn)在實(shí)現(xiàn)了方法,卻發(fā)現(xiàn)攔截器沒(méi)有被調(diào)用。
我是在自定義的HandlerInterceptorAdapter里面重寫(xiě)了preHandle方法。并把這個(gè)自定義的HandlerInterceptorAdapter添加到了自定義的WebMvcConfigurerAdapter,在WebMvcConfigurerAdapter添加@Configuration注解,但是卻沒(méi)有被調(diào)用!

2.程式碼:
自訂的HandlerInterceptorAdapter的AccessTokenVerifyInterceptor:

@Component
public 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 stub
        
        logger.info("AccessToken executing ...");
        return true;    
    }
    
}

自訂的WebMvcConfigurerAdapter類(lèi)別FFWebMvcConfigurer:

@Configuration
public class FFWebMvcConfigurer extends WebMvcConfigurerAdapter {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // TODO Auto-generated method stub
        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("開(kāi)始開(kāi)始咯。。。。");    
    } 
}

3.希望各路大神,幫小弟指點(diǎn)指點(diǎn),感謝感謝!

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證高級(jí)PHP講師

全部回覆(4)
Peter_Zhu

/**去掉一個(gè)*試試

扔個(gè)三星炸死你

在啟動(dòng)類(lèi)別中加上
@ServletComponentScan

阿神

那你應(yīng)該把 HandlerInterceptorAdapter 貼出來(lái)看看
還有就是 2 中那個(gè) @Component 註解 是沒(méi)有意義的。

學(xué)霸

不會(huì)啊,按照你的程式碼寫(xiě)了一個(gè)簡(jiǎn)單的Demo,攔截器是可以呼叫的。

@Configuration
public 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("開(kāi)始開(kāi)始咯。。。。");
    }

}
public class AccessTokenVerifyInterceptor extends HandlerInterceptorAdapter {

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

}

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板