Spring и @Autowired для DelegatingFilterProxy

Я пытаюсь внедрить компонент Spring в фильтр, но не могу заставить его работать.

Введенный компонент всегда "нулевой". Мне удалось автоматически подключить этот же компонент в 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);
    }
}

Фильтр срабатывает при каждом запросе.

Это аннотации в bean-компоненте "Usuario"

@Component
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class Usuario implements java.io.Serializable { ... }

Что мне не хватает? Спасибо!

11
задан Vikdor 5 April 2014 в 22:07
поделиться