Я пытаюсь добавить пружинный боб в фильтр, но не могу заставить его работать.
Внедренный компонент всегда "нулевой". Мне удалось автоматически подключить этот же bean-компонент в Controllers и HandlerInterceptors, поэтому он правильно аннотирован.
Класс фильтра находится в том же базовом пакете, что и остальные контроллеры.
Это соответствующая часть моего web.xml
<filter>
<filter-name>CheckSession</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>CheckSession</filter-name>
<url-pattern>/panel/*</url-pattern>
</filter-mapping>
Это код для фильтра
@Component
public class CheckSession extends OncePerRequestFilter implements Filter {
@Autowired private Usuario usuario;
@Override
protected void doFilterInternal(
HttpServletRequest request,
HttpServletResponse response, FilterChain chain)
throws ServletException, IOException {
// always null
System.out.println("autowired " + usuario);
chain.doFilter(request, response);
}
}
Фильтр срабатывает при каждом запросе.
Это аннотации в компоненте "Усуарио"
@Component
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class Usuario implements java.io.Serializable { ... }
Что мне не хватает? Спасибо!