1
我有三個層次的職位。在spring批處理中將參數傳遞給父作業中的stepJob?
<job id="job1">
<step id="step1" >
<job ref="step1.job1.1" job-parameters-extractor="job1Parameters"/>
</step>
</job>
<job id="job1.1">
<step id="step1.1" >
<job ref="step1.1.job1.1.1"/>
</step>
</job>
<job id="job1.1.1">
<step id="step1.1.1" >
<tasklet ref="ste1.1.1Tasklet" />
</step>
</job>
我想將param1 = value1參數從頂層作業(job1)傳遞給job1.1,並且應該再次將它傳遞給job1.1.1?
如何在春季批次中完成?我試圖使用
<util:map id="job1Parameters"
map-class="org.springframework.beans.factory.config.MapFactoryBean">
<beans:entry key="param1" value="value1" />
</util:map>
<beans:bean id="otherComputeJobParametersExtractor"
class="org.springframework.batch.core.step.job.DefaultJobParametersExtractor"
p:keys-ref="job1Parameters" />
但它不工作。
我知道我可以將它作爲參數傳遞給job1,它會自動傳遞給子作業,但有許多參數,其中許多參數僅用於特定的子作業,因此我不想將所有參數傳遞給job1。
我們是否可以添加任何步驟偵聽器,它將在觸發子作業之前在stepExecutionContext中添加param1 = value1,以便通過stepExecutionContext爲子作業提供參數?