spring MVC中过滤器中需要注入bean的解决方法
1、首先我们浅显的说下Filter和Interceptor的区别:
Filter是基于函数回调的,而Interceptor则是基于Java反射的。
Filter依赖于Servlet容器,而Interceptor不依赖于Servlet容器(依赖于spring容器)。
2、在使用过滤器的时候,一般我们都是在filter标签中配置过滤器。
但是,当需要在过滤器中注入Bean的时候,
用这种配置方法,需要注入的对象就是一个null。
3、所以这边我们需要用另外一种配置的方法。如下:
1.你要创建一个自己Filter类(这里只讲如何实现注入,具体过滤器怎么写请自行百度);
2.将以下信息写到xml文件中:
<bean id="testFilter" class="com.testFilter"> </bean>
4、在web.xml文件中添加配置信息:
<filter>
<filter-name>personalUserLoginStatusFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>testFilter</param-value>
</init-param>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>personalUserLoginStatusFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5、好了完成了,你试试