如何在Spring Batch中传递多个参数?
示例我有一个文件名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>
但这对我来说不对。
答案 0 :(得分:0)
我们使用以下方法将多个参数传递给作业
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);
因此,在您的情况下可以轻松实现。
private JobParameters buildJobParameters(String stmtDate,String no){
return new JobParametersBuilder().addString("stmtDate", stmtdate).
addDate("No", no);
}
答案 1 :(得分: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);