问题
当在拦截器中使用 redis 时,获取不到 RedisTemplate 对象
原因
拦截器在SpringContext初始化之前就执行了,即Bean初始化之前它就执行了,所以肯定是无法获取SpringIOC容器中的内容的
解决
提前实例化拦截器
在配置类里面先实例化拦截器,然后在添加拦截器时获取已实例化的拦截器Bean即可
注意,实例化后,下面注册拦截器要使用实例化的方法
registry.addInterceptor(getLoginUserInterceptor())
//提前实例化拦截器
@Bean
public LoginUserInterceptor getLoginUserInterceptor(){
return new LoginUserInterceptor();
}