小编met*_*chs的帖子

Spring和@Autowired在DelegatingFilterProxy上

我正在尝试将一个spring bean注入过滤器,但无法使其工作.

注入的bean总是"空".我成功地在Controllers和HandlerInterceptors中自动装配这个相同的bean,因此它被正确注释.

过滤器类位于其余控制器的相同基础包下.

这是我的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>
Run Code Online (Sandbox Code Playgroud)

这是过滤器的代码

@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);
    }
}
Run Code Online (Sandbox Code Playgroud)

过滤器在每个请求时触发.

这些是"Usuario"bean中的注释

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

我错过了什么?谢谢!

spring autowired

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

autowired ×1

spring ×1