[Spring Batch] Batch Job
5766 ワード
このレッスンでは、簡単なSpring Batch Jobを作成して実行します.
基本プロジェクト開発環境
IntellieJで新しいプロジェクトを作成します.
(Gradle -> Java)
build.勾配の設定
build.gradleマスターメソッド を作成
main->javaでパッケージを生成します.
生成されたパッケージの下にApplicationというJava classを作成します.
生成されたクラスに次のコードを記述します.
Applicaion
springboot設定が完了しました.簡単なSpring Batch Jobを作成します.
バッチ・ジョブを作成する前に、アプリケーション.JavaにSpring Batch機能を有効にする次の宣言(@EnableBaschProcessing)を追加します.
次に、宣言宣言宣言後、Spring Batchの複数の機能を使用できます.
パッケージの下にジョブパッケージを作成します.簡単なJobConfigです.Javaを生成します.
SimpleJobConfig
@Configuration
SpringBatchのすべてのJobは@Configurationとして登録されています.
jobBuilderFactory.get("simpleJob")
simpleJobという名前のBatch Jobを生成します.
jobBuilder Factoryクラスのget()メソッドを使用してJobBuilderを作成します.
このようにして生成されたJobBuilderでJobを生成する.
.start(simpleStep1())
Stepを追加して、最も基本的なSimpleJobBuilderを生成します.
stepBuilderFactory.get("simpleStep1")
simpleStep 1という名前のBatch Stepを生成します.
jobBuilderFactory.get(「simpleJob」)と同様に、ジェネレータで名前を指定します.
.tasklet((contribution, chunkContext))
Stepで実行する機能を示します.
Taskletは、Stepで単一に実行されるカスタム機能を宣言するために使用されます.
ここで、バックアップが実行された場合、log.infoが出力されていることを確認します(">>>>>>>This Step 1").
この簡単なSpring Batchアプリケーションを実行します.
初めて作成したアプリケーション.Javaを実行するプライマリメソッドはバッチを実行します.
上の写真のようにロゴが動いています.info(">>>>>>>This Step 1")は、ログが記録されていることがわかります.
上のBatch Jobコードを見て、SimepleJobにSimepleStep 1が含まれていることを確認します.
Spring Batchでは、Jobはバッチ作業単位を表します.このとき、Jobは複数のステップからなる.
すなわち、バッチ・タスクを実行するために、いくつかのステップを実行するように構成することができる.
StepはTaskletまたはReader/Processor/Writerからなる.Tasklet
リーダ/プロセッサ/ライタグループは同じレベルのユニットに構成できない、リーダ/プロセッサが終了したらTaskletで終わるなど.
https://jojoldu.tistory.com/325?category=902551
https://minholee93.tistory.com/entry/Spring-Batch-Batch-Job?category=924031
https://hororolol.tistory.com/513
1.開発環境の設定
- IntelliJ
- Spring Boot 2.1.7
- Java 11
- Gradle
IntellieJで新しいプロジェクトを作成します.
(Gradle -> Java)
build.勾配の設定
buildscript {
ext{
springBootVersion ='2.1.7.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group='com.jojoldu.spring'
version='1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-batch'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'mysql:mysql-connector-java'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.batch:spring-batch-test'
}
main->javaでパッケージを生成します.
生成されたパッケージの下にApplicationというJava classを作成します.
生成されたクラスに次のコードを記述します.
Applicaion
package com.jojoldu.book.springBatch;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
上記の作業はhttps://start.spring.io/で簡単に設定できます.springboot設定が完了しました.簡単なSpring Batch Jobを作成します.
2.簡易ジョブの作成
バッチ・ジョブを作成する前に、アプリケーション.JavaにSpring Batch機能を有効にする次の宣言(@EnableBaschProcessing)を追加します.
次に、宣言宣言宣言後、Spring Batchの複数の機能を使用できます.
パッケージの下にジョブパッケージを作成します.簡単なJobConfigです.Javaを生成します.
SimpleJobConfig
@Slf4j //log 사용을 위한 lombok 어노테이
@RequiredArgsConstructor//생성자 DI를 위한 lombok 어노테이션
@Configuration
public class SimpleJobConfig {
private final JobBuilderFactory jobBuilderFactory;
private final StepBuilderFactory stepBuilderFactory;
@Bean
public Job simpleJob(){
return jobBuilderFactory.get("simpleJob")
.start(simpleStep1())
.build();
}
@Bean
public Step simpleStep1(){
return stepBuilderFactory.get("simpleStep1")
.tasklet((contribution, chunkContext) -> {
log.info(">>>>>>> This is Step1");
return RepeatStatus.FINISHED;
})
.build();
}
}
生成されたjavaファイルにsimpleJobという簡単なSpring Batchコードを記述します.@Configuration
SpringBatchのすべてのJobは@Configurationとして登録されています.
jobBuilderFactory.get("simpleJob")
simpleJobという名前のBatch Jobを生成します.
jobBuilder Factoryクラスのget()メソッドを使用してJobBuilderを作成します.
このようにして生成されたJobBuilderでJobを生成する.
.start(simpleStep1())
Stepを追加して、最も基本的なSimpleJobBuilderを生成します.
stepBuilderFactory.get("simpleStep1")
simpleStep 1という名前のBatch Stepを生成します.
jobBuilderFactory.get(「simpleJob」)と同様に、ジェネレータで名前を指定します.
.tasklet((contribution, chunkContext))
Stepで実行する機能を示します.
Taskletは、Stepで単一に実行されるカスタム機能を宣言するために使用されます.
ここで、バックアップが実行された場合、log.infoが出力されていることを確認します(">>>>>>>This Step 1").
初めて作成したアプリケーション.Javaを実行するプライマリメソッドはバッチを実行します.
上の写真のようにロゴが動いています.info(">>>>>>>This Step 1")は、ログが記録されていることがわかります.
3.作業の構成
上のBatch Jobコードを見て、SimepleJobにSimepleStep 1が含まれていることを確認します.
Spring Batchでは、Jobはバッチ作業単位を表します.このとき、Jobは複数のステップからなる.
すなわち、バッチ・タスクを実行するために、いくつかのステップを実行するように構成することができる.
StepはTaskletまたはReader/Processor/Writerからなる.Tasklet
リーダ/プロセッサ/ライタグループは同じレベルのユニットに構成できない、リーダ/プロセッサが終了したらTaskletで終わるなど.
Reference
https://jojoldu.tistory.com/325?category=902551
https://minholee93.tistory.com/entry/Spring-Batch-Batch-Job?category=924031
https://hororolol.tistory.com/513
Reference
この問題について([Spring Batch] Batch Job), 我々は、より多くの情報をここで見つけました https://velog.io/@code12/Spring-Batch-Batch-Jobテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol