Java servlet过滤器中的弹簧注入
我正在尝试对servlet过滤器进行spring注入。过滤器是引用的jar文件的一部分。所以我无法将其更改为拦截器。在我的插件项目的web.xml中Java servlet过滤器中的弹簧注入,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我正在尝试对servlet过滤器进行spring注入。过滤器是引用的jar文件的一部分。所以我无法将其更改为拦截器。在我的插件项目的web.xml中 自定义过滤器 org.springframework.web.filter.DelegatingFilterProxy someinitparam 它的价值 自定义过滤器 /mywebservices/* 在spring.xml中,我将这样使用 <bean id="CustomFilter" class="com.abc.CustomFi
自定义过滤器
org.springframework.web.filter.DelegatingFilterProxy
someinitparam
它的价值
自定义过滤器
/mywebservices/*
在spring.xml中,我将这样使用
<bean id="CustomFilter" class="com.abc.CustomFilter"></bean>
它会起作用的
请建议。我认为您不能在spring上下文之外注入bean,并且您的servlet过滤器在spring上下文之外。如果您希望在上下文中使用过滤器,那么我建议您使用SpringWeb拦截器。这些拦截器位于spring上下文中,您可以利用这些拦截器的spring容器功能。您可以像在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>
自定义过滤器
org.springframework.web.filter.DelegatingFilterProxy
自定义过滤器
/mywebservices/*
然后在spring.xml中注入属性
<bean id="CustomFilter" class="com.abc.CustomFilter">
<property name="someParameter">
<value>some value</value>
</property>
</bean>
一些价值
它能用吗??你试过了吗?嗯。。听起来很棘手。Spring依赖项注入通常是在Spring上下文上创建的bean上完成的,而过滤器是由JavaEE服务器本身创建的。也许您可以做的是——如果您可以确保在创建过滤器类时spring上下文已经准备好——尝试以某种方式获取对它的引用。。顺便问一下,你能告诉我们更多关于你的应用程序的信息吗?你使用SpringMVC吗?如果是这样,也许您不需要使用servletfilter@TechExchange. 我已经试过了,但它给我的应用程序造成了严重错误。@gerrytan。过滤器是jar文件的一部分。我正在使用Jive工具。它只基于spring MVC。@User222如果它导致严重错误,您应该说明它是什么。另外,您不应该使用Acegi安全性,因为它已不再开发,而且不安全。谢谢您的回答。我们是否可以在servlet过滤器的it参数中注册为元素的属性,或者我们是否必须在web.xml.xml中的元素中指定它,以及我已经在web.xml中将url模式指定为/mywebservices/*。我是否需要在id为filterChainProxy的bean中将其作为值添加到/myservice/**中。Please helpFilterChainProxy是可选的,用于对执行哪些筛选器进行细粒度控制。通常不需要显式定义它。如果它是因为其他原因存在的,那么如果你也在那里添加了你的过滤器,那么你做得不错。不,这不会起作用。另一个答案是正确的,基本上您让您的web上下文创建一个过滤器实例,然后您告诉Spring创建另一个实例,该实例不会用作过滤器。您可以使用诸如或之类的替代方法来获取Spring上下文bean。这就是DelegatingFilterProxy的作用。这个答案根本不正确
<bean id="CustomFilter" class="com.abc.CustomFilter">
<property name="someParameter">
<value>some value</value>
</property>
</bean>