在Spring Batch中,在ItemReader或ItemProcessor返回它的item对象之后,框架将该项放入ArrayList以传递给ItemWriter。
我需要访问ItemProcessor中项目的ArrayList。我需要的核心功能是在ItemReader / ItemProcessor处理它的块时访问Arraylist。
我的想法是使用ApplicationContextAware ItemProcessor,允许我在下面进行调用:
ArrayList<? extends Item> items = context.getBean("items", ArrayList.class)
但是豆子没有被命名为物品。
你知道我如何获得对该ArrayList的访问权限,或者Bean的名称,以便我可以强制进入那里吗?
答案 0 :(得分:2)
使用以下弹簧批注释(自春季批次2.0起可用)
@BeforeWrite
在传递项目之前标记要调用的方法 一个ItemWriter
预期的签名:void beforeWrite(List 项)
标记有此注释的编写器上的方法将在之前为每个块执行 你的写法。