我有一个从FTP服务器获取文件并将其存储在临时文件夹中的小程序。我想将该文件夹的路径设置为批处理作业参数,以便其他步骤可以访问该文件。这是可能的,如果是的话,怎么样?我的JSR 352实现是春季批处理。
编辑:我正在使用Spring Batch 3.0里程碑3。
答案 0 :(得分:3)
您可以使用JSR-352的工具将文件的位置作为作业参数传递,如下所示:
<step id="step1">
<batchlet ref="fooBatchlet">
<properties>
<property name="fileName" value="#{jobParameters['testParam']}"/>
</properties>
</batchlet>
</step>
以上假设您使用batch.xml或Spring DI来定义fooBatchlet。否则,fooBatchlet将需要是完全限定的类名。
答案 1 :(得分:1)
您使用的是哪个版本的Spring?
假设v3,您可以存储信息以传递到StepContext或JobExecutionContext中的其他作业步骤。您可以从ChunkContext中检索StepContext,它将传递给BatchletAdapter RepeatStatus方法。
或者你可以设置一个JVM参数,但考虑到Spring提供了上述方法,感觉有点笨拙。
答案 2 :(得分:1)
感谢Michael Minella,我发现我可以在我的Batchlet中注入JobContext。
@Inject
private JobContext jobContext;
现在我可以使用此jobContext来设置属性。
jobContext.setTransientUserData(myData);