Spring Framework过滤器,bean未注入

有两个条目用于Servlet过滤器,一个位于web.xml中,另一个位于Spring applicationContext.xml中

我将过滤器添加到applicationContext.xml中,因为我想将creditProcessor bean注入到它中。

唯一的问题是web.xml中的条目被JBoss拾起并使用,所以creditProcessor为null。

我是否必须使用Spring的delegatingFilterProxy或类似的方法才能将注入的东西插入到bean中,还是可以调整web.xml?

web.xml中:

<filter>
    <filter-name>CreditFilter</filter-name>
    <filter-class>credit.filter.CreditFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>CreditFilter</filter-name>
    <url-pattern>/coverage/*</url-pattern>        
</filter-mapping>

Spring的applicationContext.xml中:

<bean id="creditFilter" class="credit.filter.CreditFilter" >
      <property name="creditProcessor" ref="creditProcessor"/>
</bean>

你不能像这样管理过滤器弹簧。 使用你的设置,它会在spring中实例化一次,然后由servlet容器实例化一次。 相反,使用DelegatingFilterProxy

  • 在web.xml中将过滤器代理声明为<filter>
  • 设置过滤器定义的targetBeanName init-param来指定实际上应该处理过滤的bean:

    <init-param>
        <param-name>targetBeanName</param-name>
        <param-value>creditFilter</param-value>
    </init-param>
    
  • 链接地址: http://www.djcxy.com/p/44067.html

    上一篇: Spring Framework filter, bean not injected

    下一篇: What options for mobile support are there for a large GWT web application?