springmvc拦截器中使用redisTemplate报空指针异常
-
错误原因
过滤器或拦截器在生效时,redisTemplate还没有注入
- 解决方案:在注入容器时就生效
@Component //项目运行时就注入Spring容器
public class RedisBean {
@Resource
private RedisTemplate<String, Object> redis;
//赋值一个静态的redisTemplate
public static RedisTemplate redisTemplate;
@PostConstruct //此注解表示构造时赋值
public void redisTemplate() {
redisTemplate = this.redis;
}
}
- 拦截器中使用
String token = req.getHeader("token");
Object o = RedisBean.redisTemplate.opsForValue().get(token);