Selbst wenn Sie eine Methode hinzufügen, die @ BeforeStep``` zu
`Tasklet``` hinzufügt, wie unten im Spring-Batch gezeigt, funktioniert dies nicht wie beabsichtigt.
@Component
public class MyTasklet implements Tasklet {
@BeforeStep
void beforeStep(StepExecution stepExecution) {
System.out.println("asdfasdf");
}
Wahrscheinlich, weil es in `` `Tasklet``` keine automatische Listener-Registrierung gibt.
Wenn Sie einen Listener wie StepExecutionListener in einer Implementierungsklasse wie ItemReader implementieren, wird dieser Listener ebenfalls automatisch registriert (zumindest für die Ausführung von Spring-Batch zusammen mit Spring-Boot). Siehe Spring-Batch wird automatisch registriert, wenn ein Listener mit einem Reader implementiert wird.
Wie oben erwähnt, scheint die Ursache darin zu liegen, dass `ItemReader``` eine automatische Listener-Registrierung hat,`
Tasklet``` jedoch nicht. Ich rate nur, weil ich der Quelle oder Dokumentation nicht richtig gefolgt bin.
https://stackoverflow.com/questions/29935824/beforestep-annotated-method-not-being-called
Verwenden Sie das Methodenargument execute </ code>
`chunkContext``` oder implementieren Sie`
StepExecutionListener```.
Recommended Posts