Use case:
如果C远大于通过ExecutionContext传递的内容,我们如何使它在ItemProcessor of enrichStep中可用?
发布于 2014-01-07 15:49:39
在您的enrichStep中添加一个StepExecutionListener.beforeStep并在HugeCollectionBeanHolder bean中加载您的大量集合。
这样,您将只加载一次集合(当步骤启动或重新启动时),而不将其保存到执行上下文中。在您的丰富处理器连接HugeCollectionBeanHolder以访问庞大的集合。
class HugeCollectionBeanHolder {
Collection<Item> hudeCollection;
void setHugeCollection(Collection<Item> c) { this.hugeCollection = c;}
Collection<Item> getHugeCollection() { return this.hugeCollection;}
}
class MyProcessor implements ItemProcessor<Input,Output> {
HugeCollectionBeanHolder hcbh;
void setHugeCollectionBeanHolder(HugeCollectionBeanHolder bean) { this.hcbh = bean;}
// other methods...
}https://stackoverflow.com/questions/20975355
复制相似问题