我正在尝试对servlet过滤器执行spring注入。过滤器是引用的jar文件的一部分。所以。我不能把它改成拦截器。在我的插件项目的web.xml中
<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>
在spring.xml中我会像这样使用
<bean id="CustomFilter" class="com.abc.CustomFilter"></bean>
有一些过滤器已在spring.xml中配置为
<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>
由于我已经在web.xml中指定了我的url模式,我需要在filterChainProxy中再次添加
/mywebservices/**=CustomFilter, some existing filters
它会起作用。
请建议。
答案 0 :(得分:14)
您可以像在web.xml中一样配置过滤器
<filter>
<filter-name>CustomFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>CustomFilter</filter-name>
<url-pattern>/mywebservices/*</url-pattern>
</filter-mapping>
然后在spring.xml中注入属性
<bean id="CustomFilter" class="com.abc.CustomFilter">
<property name="someParameter">
<value>some value</value>
</property>
</bean>
答案 1 :(得分:0)
我认为你不能在spring上下文之外注入bean,而你的servlet过滤器在spring上下文之外。如果你想在上下文中使用过滤器,那么我建议你去寻找弹簧网拦截器。这些拦截器在弹簧环境中,您可以利用这些拦截器的弹簧容器功能。