SpringBoot使用过滤器时依赖注入失效
程序员文章站
2022-04-03 08:54:28
...
场景:
创建
过滤器
进行Token过滤时,无法获取
实例化的redisUtil
和userService
。
原因分析:
在过滤器中使用@Autowierd或者@Resource进行依赖注入是行不通的,因为:
Filter比Servlet先加载,用依赖注入是不行的,需要通过WebApplicationContext获取Bean
Spring加载顺序:
解决方案:
// 获取上下文
WebApplicationContext applicationContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(request.getServletContext());
// 获取依赖
RedisUtil redisUtil = applicationContext.getBean(RedisUtil.class);
UserService userService = applicationContext.getBean(UserService.class);
整理完毕,完结撒花~
上一篇: 微信小程序授权问题
下一篇: List<Obiect>去重问题