Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring没有自动连接我的过滤器类_Java_Spring Mvc_Spring 3 - Fatal编程技术网

Java Spring没有自动连接我的过滤器类

Java Spring没有自动连接我的过滤器类,java,spring-mvc,spring-3,Java,Spring Mvc,Spring 3,我有一个servlet过滤器声明如下: @Component public class BlahBlahFilter extends OncePerRequestFilter implements Filter { @Autowired @Qualifier("appProperties") AppProperties properties; 对于这样声明的属性: @Component public class BlahBlahFilter extends OncePerRequest

我有一个servlet过滤器声明如下:

@Component
public class BlahBlahFilter extends OncePerRequestFilter implements Filter {
@Autowired  
@Qualifier("appProperties") 
AppProperties properties;
对于这样声明的属性:

@Component
public class BlahBlahFilter extends OncePerRequestFilter implements Filter {
@Autowired  
@Qualifier("appProperties") 
AppProperties properties;
我在应用程序中的许多组件中都有相同的自动连线声明,它们没有问题——但它们都是控制器、服务和其他带有@Component标记的杂项

但是这个过滤器类被忽略了,我不知道如何让Spring将属性注入其中

我注意到在我的调试日志文件中,这是在组件扫描期间写在这个类名旁边的:

"Ignored because not a concrete top-level class" 
嗯?是的,它是一个具体的类,它不是抽象的,也不是接口。看起来很可疑

我能做什么

我在这方面看到了一些其他的话题,它们完全没有帮助。他们都没有一个公认的答案,也没有一个帖子对我的处境有帮助

其他可能有帮助的相关代码片段:

web.xml:


blahBlahFilter
BlahBlahFilter.com.blah.BlahBlahFilter
blahBlahFilter
/*
拦截器
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
类路径:spring-mvc.xml
1.
spring-mvc.xml:

  <context:annotation-config/>
  <context:component-scan base-package="com.blah"/>   
  <mvc:annotation-driven/>

当您这样声明筛选器时

<filter>
    <filter-name>blahBlahFilter</filter-name>
    <filter-class>com.blah.BlahBlahFilter</filter-class>
</filter>

blahBlahFilter
BlahBlahFilter.com.blah.BlahBlahFilter
您告诉Servlet容器初始化它,而不是Spring。因此,Spring无法管理其生命周期,也无法将任何内容自动关联到其中。您的上下文中可能有一个
BlahBlahFilter
bean,但它不是在Servlet容器中注册的bean

当出现消息“is o.s.c.a.ClassPathBeanDefinitionScanner:Ignored,因为不是具体的顶级类:URL…”时,请使用
DelegatingFilterProxy
或在
WebApplicationInitializer
中进行过滤器注册。