Spring 向过滤器中注入javaBean

在使用过滤器的时候,一般我们都是在filter标签中配置 过滤器的 。

但是,当需要在过滤器中注入Bean的时候,用这种配置方法,需要注入的对象就是一个null。
这里有个要注意的地方。filter的类中,需要注入的对象要自己set下,如果用注解的 话,会失败,大概是因为xml优先的原因吧。
所以这边我们需要用另外一种配置的方法。如下:

web.xml中

 
        DelegatingFilterProxy
        org.springframework.web.filter.DelegatingFilterProxy
        
            targetBeanName
            currentUserFilter        
        
        
            targetFilterLifecycle
            true
        
    

applicationContext.xml配置:

       
    
    

最后的filter类



public class CurrentUserFilter implements Filter {

    @Resource
    private UserService userService;

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
            throws IOException, ServletException {
        System.out.println("filter:"+userService);
        arg2.doFilter(arg0, arg1);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        
    }

    @Override
    public void destroy() {
        
    }

}

你可能感兴趣的:(Spring 向过滤器中注入javaBean)