1.问题描述
在web项目中,使用filter过滤器十分常见,但是在过滤器中spring Bean即使在配置文件中配置了扫描filter对应的包,也无法正确注入spring 管理的Bean。
2.原因
大概如下<摘自知乎>:
@Component public class HtmlFilter implements Filter{ //TODO }
3.2 在web.xml 配置DelegatingFilterProxy
<filter> <filter-name>DelegatingFilterProxy</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetBeanName</param-name> <param-value>htmlFilter</param-value> </init-param> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value><!-- 此参数必需设置--> </init-param> </filter> <filter-mapping> <filter-name>DelegatingFilterProxy</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3.3 这样就可以了
参考资料:
1.https://www.zhihu.com/question/22977026/answer/23317656
2.http://www.programgo.com/article/840680429/
原文:http://www.cnblogs.com/springlight/p/6297001.html