我正在尝试在处理器中注入我的FlatFileItemWriter,但我总是得到相同的异常。
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.batch.item.file.FlatFileItemWriter] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:993)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:863)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:775)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:489)
... 56 more
我的配置如下。我用这种方式声明了我的FlatFileItemWriter:
<bean id="myWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" />
然后我以这种方式启用了bean autoscan和annotation配置:
<context:annotation-config/>
<context:component-scan base-package="com.myCompany.batch"/>
最后我尝试自动连接bean
@Component
public class GsLetturaProcessor implements ItemProcessor<GsLettura,GsLettura>,Costanti{
@Autowired
FlatFileItemWriter writer;
}
通常我能够在应用程序上下文中定义bean并将其注入另一个bean。为什么它在这种情况下不起作用?我想也许问题是FlatFileItemWriter使用泛型。我在哪里做错了?
UPDATE1
我的bean定义在job-context.xml中,而后者在context.xml中