mem*_*und 10 java spring batch-processing spring-batch
我正在使用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;
}
Run Code Online (Sandbox Code Playgroud)
但是哪个范围就在这里?为什么?
带step
范围的执行有效,但我觉得itemWrite应该是job
范围的,这样它们就不会在每一步都重新创建.
我尝试切换step
到job
,但是会抛出以下错误:
Exception in thread "main" java.lang.IllegalStateException: No Scope registered for scope 'job'
小智 7
从Spring-Batch v3.0.1开始,您可以使用@JobScope
将@Bean标记为@JobScope等效于将其标记为@Scope(value =“ job”,proxyMode = TARGET_CLASS)
归档时间: |
|
查看次数: |
15847 次 |
最近记录: |