Spring Batch簡単な練習


👊 Spring Bootで開始


spring initializrさんはSpringBootプロジェクトになりました.

まず、会社の現在の環境に基づいて作成する必要があります.
  • Batch
  • Quartz(=スケジューラ)
  • Lombok
  • MyBatis
  • H 2(=テスト)
  • MySQL(=会社DB)
  • を使用してプロジェクトを作成します.

    🔨 プロジェクトの設定



    プロジェクトを解凍しintellijで開きます.

    一括設定

    @EnableBatchProcessing	//배치 활성화
    @SpringBootApplication
    public class CreshBatchApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(CreshBatchApplication.class, args);
    	}
    }
    @EnableBatchProcessing音声プロンプトを適用してSpring Batchプログラムをアクティブにします.

    🎹 簡単なbatch練習

    @Slf4j
    @RequiredArgsConstructor
    @Configuration  //Spring에 설정 파일이라는 선언
    public class TestJob {
    
        private final JobBuilderFactory jobBuilderFactory;
        private final StepBuilderFactory stepBuilderFactory;
    
        @Bean
        public Job simpleJob() {
            return jobBuilderFactory.get("simpleJob")   //(1) simpleJob 이름으로 batch job을 생성
                    .start(simpleStep1())               //(2) simpleStep1 method Step을 실행
                    .build();
        }
    
        @Bean
        public Step simpleStep1() {
            return stepBuilderFactory.get("simpleStep1")        //(3) simpleStep1 batch step을 생성
                    .tasklet((contribution, chunkContext) -> {  //(4) step 안에서 수행될 기능들을 명시, tasklet은 step 안에서 단일로 수행될 커스텀한 기능을 선언할 때 사용
                        log.info(contribution.toString());
                        log.info(chunkContext.toString());
                        log.info(">>>>> This is Step1");
                        return RepeatStatus.FINISHED;           //(5) batch가 성공적으로 수행되고 종료됨을 반환
                    })
                    .build();
        }
    }
    プロジェクトにjobsパッケージを作成し、Jobをテストします.classを作成し、次のコードを作成して結果値を表示します.
    バッチジョブは、
  • simpleJobの名前で作成されます.
  • Stepと定義されたsimpleStep 1を実行します.
  • SimpleStep 1というbatchstepを生成します.
  • マイクロスレッドを使用してstepで実行される機能を指定します.
  • マイクロスレッドは、stepで単一に実行されるカスタム機能を宣言するために使用される.
  • マイクロスレッドに加えて、reader、processor、writerのバンドル方式で実行する方法もある.
  • batchは、正常な実行と終了を返します.

  • 実行ログの表示
    ジョブ
  • ジョブにsimpleJobとして登録
  • ステップ1
  • を実行する.
  • This Step 1出力
  • impleStep 1の運転時間出力
  • が実行するジョブは正常に実行され、実行するジョブに対する情報出力は
  • となる.
    表示して終了します.

    画像ソース:https://juneyr.dev/2019-07-24/spring-batch-tasklet
    taskletと{reader,processor,writer}の組合せを比較すると,taskletは一度にすべての処理を完了することができ,組合せは読み取り,論理的に行い,書き込みであると考えられる.また,2つの方法のうちstepを記述する際には1つの方法しか使用できないことが重要である.참고글香炉batch guide最高
    スプリング配置チュートリアル
    h 2設定とファイル作成
    バッチ+プログラム実装