1. SpringApplication中调用afterRefresh方法
2. 调用CommandLineRunner
3. JobLauncherCommandLineRunner调用jobLauncher.run()方法启动job
4. 同步执行job
5. 抽象类AbstractJob调用子类SimpleJob的doExecute方法
7. 逐个执行job下所属的step
8. 委拖SimpleStepHandler执行step
9. 调用AbstractStep的execute方法
10. 调用TaskletStep的doExecute方法
11. 调用RepeatTemplate的executeInternal方法
12. 调用RepeatTemplate的getNextResult方法
13. 调用回调类StepContextRepeatCallback的doInIteration方法
14. 调用回调类StepContextRepeatCallback的doInChunkContext方法
15. 调用TaskletStep内部类ChunkTransactionCallback的doInTransaction方法
16. 调用Tasklet类的execute方法
17. 调用ChunkOrientedTasklet类的execute方法(reader,processor,wirter的本质是一个tasklet)
18. 调用SimpleChunkProvider类的doRead方法,将每一个itemadd到Chunk对象的items中
19. 调用processor的writer
20. 调用processor的writer