原由
在Filter中通过@autowired无法将redisUtils注入
解决方案
首先明确一点
Web容器初始化顺序是按照Listener-filter-servlet的顺序进行,因为dispatcherServlet是在filter之后才进行初始化,也就是这个时候我们要自动注入的bean才被初始化。
所以此时在filter中自动注入的时候还没有bean,所以会注入失败。
我们直接从WebApplicationContext上下文中获取bean,赋值给redisUtils。
ServletContext sc = req.getSession().getServletContext();
WebApplicationContext cxt = WebApplicationContextUtils.getWebApplicationContext(sc);
RedisUtils redisUtils = cxt.getBean(RedisUtils.class);
版权属于:牧瀬くりす
本文链接:https://hcyacg.com/tutorial/filter-bean.html
本站文章采用知识共享署名4.0 国际许可协议进行许可,允许非商业转载,但必须注明出处!