springboot 拦截器中redisUtil 工具类自动注入失败

本文探讨了使用JWT进行权限验证的场景下,如何在Spring框架中通过自定义拦截器实现对请求的token验证,并解决了拦截器内无法自动注入自定义RedisUtilBean的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:
使用Jwt做权限验证,生成的token存入redis,创建一个拦截器,拦截请求,在拦截器里对请求的token进行验证,当在拦截器里使用个人创建的一个redisUtil bean时,无法自动注入redisUtil bean,redisUtil 为null。

原因:
拦截器的执行是在spring容器中bean初始化之前的,拦截器执行时,spring中我们定义的bean还未初始化,自然也就无法自动注入,无法使用。

解决:

@Configuration
public class WebConfig implements WebMvcConfigurer {

	// 将拦截器bean化
    @Bean
    public JwtInterceptor jwtInterceptor(){
        return new JwtInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry){
    	// 注入拦截器时,不再是new一个拦截器对象,直接使用jwtInterceptor()方法
    	//返回的拦截器对象
        registry.addInterceptor(jwtInterceptor())
                .excludePathPatterns("/tp_store/login");
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值