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でジョブを起動する際に必要なパラメータを柔軟に設定することができます。
これにより、ジョブの実行時に特定のデータや条件を動的に指定することが可能となります。