spring MVC中过滤器中需要注入bean的解决方法

2025-10-10 22:33:44

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、好了完成了,你试试

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢