不管三七二十一,粗略的理解,过滤器是在spring之前执行的
这个时候想在过滤器中使用spring管理的对象就得用代理过滤器来管理过滤器(DelegatingFilterProxy)
<!-- <filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.package.MyFilter</filter-class>
</filter> -->
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
修改后的在web.xml中的代码如上,注释中的是原有写法。
在spring的配置文件中添加一行:
<!-- 启动项目时Spring创建一个过滤器对象交由代理过滤器管理(DelegatingFilterProxy) -->
<bean id="MyFilter" class="com.package.MyFilter" />
这个时候在过滤器中就能注入spring管理的对象了。