SpringBatchの起動方法
Spring Batchを起動する方法にはいくつかの方法があります。
以下に、Spring Batchの基本的な起動手順を説明します。
1. SpringBootを使用する場合
SpringBootを使用すると、Spring Batchの設定と起動が簡単になります。
以下の手順でSpringBootアプリケーションを使用してSpring Batchジョブを起動できます。
ステップ1: 依存関係の追加
pom.xml(Mavenの場合)またはbuild.gradle(Gradleの場合)にSpring Batchの依存関係を追加します。
Mavenの場合
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId> </dependency> <!-- 他の依存関係 --> </dependencies>
Gradleの場合
dependencies { implementation 'org.springframework.boot:spring-boot-starter-batch' // 他の依存関係 }
ステップ2: ジョブの定義
@Configurationクラスを作成し、JobやStepを定義します。
以下に基本的な例を示します。
import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.job.builder.JobBuilder; import org.springframework.batch.core.step.builder.StepBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @EnableBatchProcessing public class BatchConfiguration { @Bean public Job job(JobBuilderFactory jobBuilderFactory, StepBuilderFactory stepBuilderFactory) { return jobBuilderFactory.get("job") .start(step(stepBuilderFactory)) .build(); } @Bean public Step step(StepBuilderFactory stepBuilderFactory) { return stepBuilderFactory.get("step") .tasklet((contribution, chunkContext) -> { System.out.println("Hello, Spring Batch!"); return RepeatStatus.FINISHED; }) .build(); } }
ステップ3: アプリケーションクラスの作成
@SpringBootApplicationを使用して、SpringBootアプリケーションを起動します。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class BatchApplication { public static void main(String[] args) { SpringApplication.run(BatchApplication.class, args); } }
ステップ4: 実行
アプリケーションを実行することで、SpringBootがSpring Batchジョブを自動的に起動します。
コマンドラインで次のように実行できます。
mvn spring-boot:run
または、IDEから直接実行することもできます。
2. Spring Batchのコマンドライン起動
Spring Batchのジョブをコマンドラインから起動することもできます。
この場合、JobLauncherとJobを使用します。
ステップ1: ジョブランチャーの作成
import org.springframework.batch.core.Job; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.JobParametersBuilder; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class JobRunner { @Autowired private JobLauncher jobLauncher; @Autowired private Job job; public void run() throws Exception { JobParameters params = new JobParametersBuilder() .addString("param", "value") .toJobParameters(); jobLauncher.run(job, params); } }
ステップ2: 実行
コマンドラインやバッチファイルを使用して、上記のJobRunnerクラスのrunメソッドを呼び出します。
まとめ
Spring Batchの起動方法は、SpringBootを使う方法とコマンドラインで直接起動する方法があります。
SpringBootを使用することで、設定が簡単になり、起動がスムーズになりますが、より詳細な制御が必要な場合は、コマンドラインでの起動も検討できます。