我正在尝试在Spring Batch中创建一个工作,但我找不到任何东西..我的程序看起来像这样:
-
一个创建id列表的tasklet
-
使用此列表在数据库中获取字符串并连接它们的Reader
-
一个获取此String并将其写入文件的Writer
-
使用id列表并更新数据库的tasket .
首先,它是我的批次结构的最佳选择吗?
主要问题是我不知道如何在Reader和最后一个Tasklet中获取id列表 . 我正在使用Spring,我试过这个:
<bean id="idList" class="java.util.ArrayList" scope="job" />
<bean id="myFirstTasklet" class="myFirstTasklet"
<property name="idList" ref="idList" />
</bean>
<bean id="myReader" class="myReader"
<property name="idList" ref="idList" />
</bean>
<bean id="mySecondTasklet" class="mySecondTasklet"
<property name="idList" ref="idList" />
</bean>
在创建Reader和第二个tasklet之前,我的列表是否可以由tasklet更新?
1 回答
您可以将值放在tasklet的ExecutionContext中,然后在其他tasklet中检索它 . 请参阅以下代码:
在第一个任务中 -
}
内部第二个tasklet:
还要确保将tasklet的范围标记为步骤: