2017-11-06 16 views
-1

Spring Batchで複数のパラメータを渡すにはどうすればよいですか?Springバッチで複数のパラメータを渡す

例ファイル名はABCYYMMDD00.txtです。 YYMMDDはメインクラスからの現在の日付とパスを表し、ABCは固定され、00もメインクラスからパスします。

<bean id="detailReader" class="com.rh.app.ReadFile" scope="step"> 
     <constructor-arg name="fileName" value="/home/xxx/IFD+#{jobParameters['stmtDate']}+#{jobParameters['No']}.txt"/> 
    </bean> 

しかし、これは私には間違っています。私たちは、仕事だから、

private JobParameters buildJobParameters(String date,String wfId){ 
    return new JobParametersBuilder().addString("wfId", workflowId). 
         addDate("rundate", runDate); 
} 

JobParameters jobParameters = buildJobParameters(date,wfId); 
JobExecution execution = jobLauncher.run(job,jobParameters); 

に複数のパラメータを渡すために、次の使用

+0

ですそして、なぜそれが間違っているだろうか? 2つのパラメータが必要なので、両方を取得する必要があります。単一のSPeL(それは確かではありません)に入れることができるかもしれません。 –

答えて

0

は、簡単にあなたのケースで達成することができます。

0

JobParametersコンストラクタはJobParameterのマップを入力として受け取ります。任意の数のパラメータを渡すことができます。

は、以下のサンプルコード

Map<String, JobParameter> map = new HashMap<String, JobParameter>(); 
      JobParameter myParameter = new JobParameter(parameter1); 
      map.put("key1", myParameter); 
      JobParameter myParameter = new JobParameter(parameter2); 
      map.put("key2", myParameter2); 
      JobParameter myParameter = new JobParameter(parameter3); 
      map.put("key3", myParameter3); 
      JobParameters jobParameters = new JobParameters(map); 
関連する問題