DelegatingFilterProxy作用浅析

    <filter>
        <filter-name>secondDomainFilter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetFilterLifecycle</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>secondDomainFilter</filter-name>
        <url-pattern>*.htm</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>shopFilter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetFilterLifecycle</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>shopFilter</filter-name>
        <url-pattern>*.htm</url-pattern>
    </filter-mapping>

spring-web 炸包下面的这个代理类主要作用如下:

使filter可以使用spring中的bean,达到可插拔的效果。比如你可以使用shiro或者springSecurity等安全框架来进行权限管理,这样也算是使安全验证这一块与spring解耦。

 具体过程:web.xml中的ContextLoaderListener会将spring及你使用的shiro或者springSecurity的相关配置文件加载,然后初始化声明的bean,这其中就有filter中要用到的bean;这样filter用到这些bean的时候就可以到spring的bean容器中去取了

原文地址:https://www.cnblogs.com/limingxian537423/p/7873539.html