Même si vous ajoutez une méthode qui ajoute @ BeforeStep '' à
Tasklet '' comme indiqué ci-dessous dans spring-batch, cela ne fonctionne pas comme prévu.
@Component
public class MyTasklet implements Tasklet {
@BeforeStep
void beforeStep(StepExecution stepExecution) {
System.out.println("asdfasdf");
}
Probablement parce qu'il n'y a pas d'enregistrement automatique de l'auditeur dans `` Tasklet ''.
Si vous implémentez un écouteur tel que StepExecutionListener dans une classe d'implémentation telle que ItemReader, cet écouteur sera également automatiquement enregistré (au moins pour exécuter spring-batch avec spring-boot). Voir Spring-batch est automatiquement enregistré lorsqu'un auditeur est implémenté avec un lecteur.
Comme mentionné ci-dessus, il semble que ItemReader
dispose d'un enregistrement automatique de l'auditeur, mais pas `` Tasklet```. Je suppose simplement parce que je n'ai pas suivi correctement la source ou la documentation.
https://stackoverflow.com/questions/29935824/beforestep-annotated-method-not-being-called
Utilisez l'argument de méthode execute </ code>
chunkContext ou implémentez `` StepExecutionListener
.
Recommended Posts