SpringBatchの起動時にパラメータを渡す方法

SpringBatchの起動時にパラメータを渡す方法

Spring Batchでジョブを起動する際にパラメータを渡す方法には、主に以下の2つの方法があります。

1. コマンドライン引数を使用する方法

Spring Batchでは、ジョブの実行時にコマンドライン引数を通じてパラメータを渡すことができます。
これには、JobParametersというクラスを使用します。
JobParametersを使用すると、ジョブの実行時に必要なパラメータを動的に指定することができます。

例えば、以下のようにSpring BatchのJobLauncherを使用して、ジョブを起動する際にパラメータを渡すことができます。

@Autowired
private JobLauncher jobLauncher;

@Autowired
private Job job;

public void runJob() throws Exception {
    JobParameters jobParameters = new JobParametersBuilder()
        .addString("param1", "value1")
        .addLong("param2", 123L)
        .toJobParameters();

    JobExecution jobExecution = jobLauncher.run(job, jobParameters);
}

上記の例では、param1とparam2という2つのパラメータがジョブに渡されています。
これにより、ジョブ内でこれらのパラメータを利用することができます。

2. SpringBootのapplication.propertiesまたはapplication.ymlを使用する方法

SpringBootを使用している場合、application.propertiesまたはapplication.ymlにジョブパラメータを設定することもできます。
これにより、アプリケーションの起動時にジョブにパラメータを渡すことができます。

例えば、application.propertiesに以下のように設定します。

spring.batch.job.enabled=false
spring.batch.job.names=yourJobName

そして、JobLauncherのrunメソッドで指定されたジョブがyourJobNameと一致する場合に実行されます。
application.ymlの場合も同様の設定を行います。

spring:
  batch:
    job:
      enabled: false
      names: yourJobName

これらの方法を使用すると、Spring Batchでジョブを起動する際に必要なパラメータを柔軟に設定することができます。
これにより、ジョブの実行時に特定のデータや条件を動的に指定することが可能となります。