代码之家  ›  专栏  ›  技术社区  ›  Lydon Ch

Spring框架过滤器,未注入bean

  •  6
  • Lydon Ch  · 技术社区  · 15 年前

    Servlet过滤器有两个条目,一个在网站.xml一个在春天应用程序上下文.xml

    唯一的问题是网站.xml被JBoss获取并使用,所以creditProcessor为空。

    我是否必须使用Spring的delegatingFilterProxy或类似的工具,这样我才能向bean中注入内容,或者我可以调整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>
    

    弹簧-应用程序上下文.xml:

    <bean id="creditFilter" class="credit.filter.CreditFilter" >
          <property name="creditProcessor" ref="creditProcessor"/>
    </bean>
    
    1 回复  |  直到 12 年前
        1
  •  12
  •   Bozho    14 年前

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

    1. <filter> 在网站.xml
    2. 设置 targetBeanName

      <init-param>
          <param-name>targetBeanName</param-name>
          <param-value>creditFilter</param-value>
      </init-param>