springboot拦截器@Autowried注入为空,导致redisUtil为null空指针问题
描述:想用在使用jwt生成token然后放在redis中来实现token登录,生成的token保存在redis中,然后以全局拦截器的形式获取请求中获取token进行校验,问题就发生了,RedisUtil类一直无法注入。如下图;问题:springboot自定义拦截器时@Autowired下的Bean为null原因:拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null解
·
描述:想用在使用jwt生成token然后放在redis中来实现token登录,生成的token保存在redis中,然后以全局拦截器的形式获取请求中获取token进行校验,问题就发生了,RedisUtil类一直无法注入。如下图;
问题:springboot自定义拦截器时@Autowired下的Bean为null
原因:拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null
解决办法就是bean注解提前加载提前注入ioc容器中
(建议使用基于构造函数的注入,以使它们成为不可变的,并防止它们为null)
public userInterceptor(RedisUtil redisUtil) {
this.redisUtil = redisUtil;
}
在拦截器中加入
registry.addInterceptor(new userInterceptor(redisUtil)).addPathPatterns("/**");
更多推荐
已为社区贡献2条内容
所有评论(0)