org.springframework.web.filter.DelegatingFilterProxy的理解
org.springframework.web.filter.DelegatingFilterProxy可以将filter交给spring管理。
我们web.xml中配置filter时一般采用下面这种方式:
1 <filter> 2 <filter-name>myFilter</filter-name> 3 <filter-class>com.chaokuzx.myFilter</filter-class> 4 </filter>
因为一个filter也就是一个servlet,所以myFilter就会交给servlet容器(tomcat)去初始化和销毁。如果我们配置了spring就希望spring可以帮我们管理bean,
myFilter也可以被看做是一个bean。当我们需要spring去管理myFilter,又需要myFilter去实现它作为filter的功能时可以使用
org.springframework.web.filter.DelegatingFilterProxy将filter代理给spring。
配置如下:
<!-- web.xml --> <filter> <filter-name>myfilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <!-- spring --> <bean id=”myFilter” class=”com.chaokuzx.myFilter”></bean> <!-- 或用注解的方式 -->
当用户的请求被myfilter拦截后,org.springframework.web.filter.DelegatingFilterProxy容器中寻找名为myfilter的类来拦截用户的请求