Próbuję wykonać wstrzyknięcie sprężyny do filtra serwletu. Filtr jest oprócz przywoływanych plików jar. więc. Nie mogę zmienić tego jako przechwytywacza. W web.xml mojego projektu wtyczkiWstrzyknięcie sprężyny w filtrze servletu
<filter>
<filter-name>CustomFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>someinitparam</param-name>
<param-value>value to it</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CustomFilter</filter-name>
<url-pattern>/mywebservices/*</url-pattern>
</filter-mapping>
W spring.xml użyję jak ten
<bean id="CustomFilter" class="com.abc.CustomFilter"></bean>
Istnieją pewne filtry są już skonfigurowane w spring.xml jak
<bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/mywebservices/*=some existing filters
</value>
</property>
</bean>
Jak już określiłem wzorzec adresu URL w web.xml, muszę dodać ponownie w filterChainProxy jako
/mywebservices/**=CustomFilter, some existing filters
Czy to zadziała.
Proszę sugerować.
to będzie działać ?? czy próbowałeś? – TheWhiteRabbit
Hmm .. brzmi trudno. Wstrzyknięcie zależności sprężynowych zwykle wykonuje się na ziarnie utworzonym w kontekście sprężyny - podczas gdy filtry są tworzone przez sam serwer Java. Może to, co możesz zrobić, to - jeśli możesz być pewien, że kontekst wiosenny jest gotowy do czasu utworzenia klasy Filtra - spróbuj jakoś odwołać się do niej. Przy okazji, powiedz nam więcej o swojej aplikacji - nie używasz Spring MVC? Jeśli tak, być może nie trzeba używać filtra serwletu – gerrytan
@ Technika wymiany. Próbowałem tego, ale powoduje to poważny błąd w mojej aplikacji. – Patan