2013-12-08 118 views
0

在Spring批处理中,在ItemReader或ItemProcessor返回它的item对象后,框架将该项放入一个ArrayList以传递给ItemWriter。Spring ID生成的项目列表的Bean ID

我需要访问ItemProcessor中项目的ArrayList。我需要的核心功能是访问Arraylist,而ItemReader/ItemProcessor正在处理它的块。

我的想法是使用了ApplicationContextAware ItemProcessor中,让我做以下电话:

ArrayList<? extends Item> items = context.getBean("items", ArrayList.class) 

但豆未命名的项目。

你知道我如何访问该ArrayList或Bean的名称,以便我可以在那里强制它吗?

+1

这个要求的目的是什么?你试图对物品清单做什么? –

回答

2

使用以下弹簧批次注释(因为弹簧批次可用2.0)

@BeforeWrite
标记的方法的项被传递到一个 ItemWriter
预期签名之前调用:无效beforeWrite(列表 项目)上的作家

方法标有此注释之前 你写方法将执行每一个块。

+0

这会在ItemProcessor中工作吗?要求是访问ItemProcessor中的项目的ArrayList。 – cyotee

+0

这是相同的数组列表。 但是,如果你喜欢在ItemProcessor级别使用这个,使用 @ BeforeProcess/@ AfterProcess 但是,这将只能访问一个项目 –

+0

就是这样,我需要在ItemProcessor中获取ArrayList。 – cyotee