DelegatingFilterProxy是对servlet filter的代理,用这个类的好处主要是通过Spring boot容器来管理servlet filter的生命周期,还有就是如果filter中需要一些Spring容器的实例,可以通过spring直接注入,另外读取一些配置文件这些便利的操作都可以通过Spring boot来配置实现。
<bean name="myFilter" class="com.*.MyFilter"></bean>
在Spring中配置的bean的name要和web.xml中的<filter-name>一样。
或者在DelegatingFilterProxy的filter配置中配置初始参数:targetBeanName,对应到Spring配置中的beanname
如果要保留Filter原有的init,destroy方法的调用,还需要配置初始化参数targetFilterLifecycle为true,该参数默认为false。
在web.xml中配置:
<filter> <filter-name>tokenFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>tokenFilter</filter-name> <url-pattern>/restful/*</url-pattern> </filter-mapping> <filter> <filter-name>crossDomainFilter</filter-name> <filter-class>com.wi.common.config.CrossDomainFilter</filter-class> </filter> <filter-mapping> <filter-name>crossDomainFilter</filter-name> <url-pattern>/restful/*</url-pattern> </filter-mapping>