Spring容器无法在自定义过滤器中注入bean

时间:2015-11-04 07:28:41

标签: java spring spring-mvc dependency-injection

我正面临一个有趣的问题。如果你能告诉我这件事,我会恭喜你。

这是一个场景;我在Spring上下文中使用Custom Filter。我将其指定为DelegatingProxyFilter。所以我让Spring上下文将此过滤器视为bean。我可以对@Autowired类和ApplicationContext类使用TranslationUtils注释,因为您已经看到了以下代码。但我不能将@Autowired

一起使用
CommonsMultiPartResolver(**org.springframework.web.multipart.commons.CommonsMultipartResolver**). 

弹簧容器不能注入它。如果有什么我错过了,请告诉我。

代码片段这是我的过滤器:

@Component(value = "multipartExceptionHandlerFilter")
public class MultipartExceptionHandler extends OncePerRequestFilter {``
@Autowired // working !!
private TranslationUtils trans;

@Autowired // working !!!
private ApplicationContext applicationContext;

@Autowired // not working !!
@Qualifier("filterMultipartResolver") // also not working !!!
CommonsMultipartResolver commonsMultipartResolver;

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
        throws ServletException, IOException {

    //do something
        }
    }
}
web.xml中描述的

过滤器:

<filter>
    <filter-name>multipartExceptionHandlerFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>multipartExceptionHandlerFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

这是bean的定义:

<!-- Configure the multipart resolver -->
<bean id="filterMultipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
      p:maxUploadSize="52428800" p:defaultEncoding="UTF-8"/>

那可能是什么问题?

0 个答案:

没有答案