解决 Springboot中Interceptor拦截器中依赖注入失败

问题:

在Springboot拦截器Interceptor中使用@Resource依赖注入时,发现运行的时候被注解的对象居然是null,没被注入进去

原配置为:

@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {

@Override
public void addInterceptors(final InterceptorRegistry registry) {
registry.addInterceptor(new UserInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/login/**", "/logout/**", "/loginPage/**", "/error/**");
super.addInterceptors(registry);
}
}

解决:

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

修改配置:

@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {

@Bean
public UserInterceptor userInterceptor() {
return new UserInterceptor();
}

@Override
public void addInterceptors(final InterceptorRegistry registry) {
registry.addInterceptor(userInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/login/**", "/logout/**", "/loginPage/**", "/error/**");
super.addInterceptors(registry);
}
}
原文地址:https://www.cnblogs.com/niceboat/p/6958895.html