2010-10-02 28 views
5

Có 2 mục cho một Lọc Servlet, một trong web.xml và một mùa xuân applicationContext.xmlSpring Framework lọc, đậu không được tiêm

tôi đã thêm bộ lọc vào applicationContext.xml vì tôi muốn tiêm creditProcessor đậu vào nó.

Vấn đề duy nhất là mục nhập trong web.xml đã được JBoss chọn và sau đó được sử dụng, vì vậy creditProcessor là rỗng.

Tôi có phải sử dụng delegatingFilterProxy của Spring hay tương tự để tôi có thể đưa các chất liệu vào trong bean hay tôi có thể tinh chỉnh tệp web.xml không?

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> 

mùa xuân-applicationContext.xml:

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

Trả lời

11

Bạn không thể làm cho một mùa xuân Lọc quản lý như thế này. Với thiết lập của bạn, nó được khởi tạo một lần vào mùa xuân, và một lần bằng thùng chứa servlet. Thay vào đó, sử dụng DelegatingFilterProxy:

  1. tuyên bố proxy lọc như một <filter> trong web.xml
  2. Đặt targetBeanName init-param của định nghĩa bộ lọc để xác định đậu mà thực sự nên xử lý lọc:

    <init-param> 
        <param-name>targetBeanName</param-name> 
        <param-value>creditFilter</param-value> 
    </init-param> 
    
Các vấn đề liên quan