Sto provando a creare un Spring Batch e non ho esperienza con esso.Passare informazioni tra i passaggi in primavera?
È possibile passare le informazioni da ogni passaggio batch o devono essere completamente indipendenti?
Per esempio se ho
<batch:step id="getSQLs" next="runSQLs">
<batch:tasklet transaction-manager="TransactionManager"
ref="runGetSQLs" />
</batch:step>
<batch:step id="runSQLs">
<batch:tasklet transaction-manager="TransactionManager"
ref="runRunSQLs" />
</batch:step>
E getSQLs innesca un fagiolo che esegue una classe che genera un elenco di tipo String. È possibile fare riferimento a tale elenco per il bean attivato da runSQL? ("Innescato" non può essere il termine giusto, ma penso che tu sai cosa voglio dire)
UPDATE: Così getSQLs passo innesca questo fagiolo:
<bean id="runGetSQLs" class="myTask"
scope="step">
<property name="filePath" value="C:\Users\username\Desktop\sample.txt" />
</bean>
che innesca classe MyTask che esegue questo metodo:
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
ExecutionContext stepContext = this.stepExecution.getExecutionContext();
stepContext.put("theListKey", sourceQueries);
return RepeatStatus.FINISHED;
}
ho bisogno di passare in qualche modo stepExecution al metodo execute?
Il mio codice non sembra riconoscere stepExecution. Ho importato org.springframework.batch.core.StepExecution. Cosa mi manca qui? – user2665166
Dovresti piuttosto aggiornare il post con i tuoi blocchi di codice e menzionare ciò che hai fatto finora. – tmarwen
Aggiornato. Ho anche cambiato il passo per abbinare il tuo esempio. – user2665166