问题:
debug进入后,发现redisUtils和userService为null
public class StatelessAuthFilter extends AccessControlFilter{
@Resource
private RedisUtils redisUtils;
@Resource
private UserService userService;
。
。
。
}
原因:
拦截器加载的时间点在springcontext之前,所以在拦截器中注入自然为null。
解决办法:
添加以下方法
public <T> T getBean(Class<T> clazz, HttpServletRequest request) {
WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
return applicationContext.getBean(clazz);
}
使用
RedisUtils redisUtils = getBean(RedisUtils.class, req);
UserService userService = getBean(UserServiceImpl.class, req);