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/**");
}
}