Spring之过滤器代理DelegatingFilterProxy

本文介绍了Spring的DelegatingFilterProxy,它是一个过滤器代理,用于将过滤器纳入Spring管理,允许在过滤器中直接使用Spring的依赖注入。通过示例展示了如何配置和使用DelegatingFilterProxy,包括在Spring配置文件中声明过滤器和在web.xml中配置DelegatingFilterProxy的两种方式。此外,还提到了通过设置targetFilterLifecycle属性来保持过滤器的生命周期方法调用,以及如何在不使用代理的情况下获取Spring容器中的对象。

org.springframework.web.filter.DelegatingFilterProxySpring实现的一个过滤器代理,通过这个过滤器代理,Spring可以将过滤器纳入Spring的管理范围,这样过滤器中就可以直接使用注解注入Spring容器中的对象。

接着,我将通过一个示例来介绍DelegatingFilterProxy的使用。

示例步骤一:

创建过滤器,并添加到Spring的配置文件中,例如创建了SecurityFilter的过滤器,那么需要在Spring的配置中添加一下内容。

<bean id="securityFilter"class="cn.xujh.filter.SecurityFilter"/>

示例步骤二:

       web.xml中配置DelegatingFilterProxyspring支持两种配置方式。

       方式一:过滤器的名称与Spring配置文件中设定的过滤器bean的名称一致。

     

       方式二:使用初始化参数targetBeanName来配置过滤器名称

    

       注意:如果要保留Filter原有的initdestroy方法的调用,还需要配置初始化参数targetFilterLifecycletrue,该参数默认为false

       如果我们不想使用Spring提供的过滤器代理,那么也可以通过以下方式获取Spring容器中的对象引用:

     

    //获取WebApplicationContext对象

    WebApplicationContext wac =null;

    //方式一:

    wac= (WebApplicationContext)sc.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

    //方式二:

    wac =WebApplicationContextUtils.getWebApplicationContext(sc);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值