Spring Boot拦截器依赖注入为null

2021-02-26  本文已影响0人  qiubyte

出现问题

在Spring Boot拦截器Interceptor中使用@Resource依赖注入时,调试发现运行的时候被注解的对象居然是null

依赖注入为null

原始配置的拦截器为:

@Configuration
public class BaseWebConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 请求统一拦截
        registry.addInterceptor(new SigV1Interceptor()).addPathPatterns("/v1/**");
        registry.addInterceptor(new SigV2Interceptor()).addPathPatterns("/v2/**");
    }
}

解决

在添加拦截器之前先自己创建一下这个Bean,这样就能在Spring就会在映射这个拦截器前,把拦截器中的依赖注入给完成了。

@Configuration
public class BaseWebConfig implements WebMvcConfigurer {

    @Bean
    public SigV1Interceptor sigV1Interceptor() {
        return new SigV1Interceptor();
    }

    @Bean
    public SigV2Interceptor sigV2Interceptor() {
        return new SigV2Interceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 请求统一拦截
        registry.addInterceptor(sigV1Interceptor()).addPathPatterns("/v1/**");
        registry.addInterceptor(sigV2Interceptor()).addPathPatterns("/v2/**");
    }
}
上一篇下一篇

猜你喜欢

热点阅读