今天遇见一个问题,在自定义拦截器中,使用了@Autowaire注解注入了jpa的dao,结果发现无法注入,注入的dao为空,查阅资料之后解决,解决方案如下
问题原因
拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null
文件解决
在spring配置文件中这样写
@Bean
public HandlerInterceptor getMyInterceptor(){
return new MyInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getMyInterceptor());
super.addInterceptors(registry);
}
使用bean注解提前加载,即可成功。