春季批次豆的“步骤”还是“工作”范围?
2022-09-04 22:07:28
我使用Spring-Batch v3.0.0进行批量导入。有一个和一个.我怎么知道哪一个是合适的?StepScope
JobScope
例如,如果我定义了一个自定义或应该使用特定的,它可能看起来像这样:ItemReader
ItemWriter
EntityManager
@Bean
@Scope("step") //@Scope("job") //custom scope required to inject #jobParameters
public JpaItemWriter<T> jpaItemWriter(EntityManagerFactory emf) {
JpaItemWriter<T> writer = new JpaItemWriter<T>();
writer.setEntityManagerFactory(emf);
return writer;
}
但是,哪个范围在这里呢?为什么呢?
使用范围执行工作,但我觉得 itemWriters 可能应该具有范围,这样它们就不会在每个步骤中重新创建。step
job
我尝试切换到 ,但这会引发以下错误:step
job
Exception in thread "main" java.lang.IllegalStateException: No Scope registered for scope 'job'