自己看看就行了系列之 ~~ java拦截器和过滤器无法注入bean的解决方案
故事背景:
最近在做一个融媒体的项目,登录框架选用shiro结合jwt,在整个业务逻辑中需要在过滤器中注入RedisTemplate的bean,试了好多方法都没成功注入,总是为null,最后终于在一篇文章下找到了解决方案:大概意思是pringbean确实是在拦截器之前已经注入到ioc中了,但是注解的方式不支持servlet,所以也就无法通过注解获取bean,解决办法就是放弃注解的方式,直接从ioc中获取spring的bean,代码如下:
ServletContext servletContext = request.getServletContext();
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);
RedisTemplate redisTemplate = (RedisTemplate)context.getBean("redisTemplate");
在使用此方式之前要确定已经将bean注入到IOC中了!!!!!!!!!!