gpt4 book ai didi

java - Spring 批处理 : scope ("step") failed

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:42 24 4
gpt4 key购买 nike

我可以在 xml 配置中使用 scope="step" 没有任何问题,但如果将它用作注释如下.它抛出以下错误

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'step1' defined in class path resource [BatchConfiguration.class]: Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.batch.item.ItemReader]: : Error creating bean with name 'reader': Scope 'step' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No context holder available for step scope; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reader': Scope 'step' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No context holder available for step scope

重点是:

范围'step'对于当前线程不活跃;

根本原因是什么?

public class BatchConfiguration {

@Bean
@Scope("step")
public ItemReader<Source> reader(@Value("#{jobParameters['fileName']}") String fileName) {
System.out.println("*****************************");
System.out.println("read file of "+fileName);
System.out.println("*****************************");
FlatFileItemReader<Source> reader = new FlatFileItemReader<Source>();

reader.setResource(new FileSystemResource(fileName));
reader.setLineMapper(new DefaultLineMapper<Source>() {{
setLineTokenizer(new DelimitedLineTokenizer() {{
setNames(new String[] { "firstName", "lastName" });
}});
setFieldSetMapper(new BeanWrapperFieldSetMapper<Source>() {{
setTargetType(Source.class);
}});
}});
return reader;
}

最佳答案

您需要使用以下两种方式之一

   @Scope(value="step",
proxyMode=TARGET_CLASS)

或者

 @Bean
@StepScope

关于java - Spring 批处理 : scope ("step") failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com