2 回答

TA贡献1818条经验 获得超3个赞
要绑定作业参数,您需要将后期绑定功能与StepScope.
您需要做的是将您的 setter 定义为步进范围的 bean。在您的情况下,一种典型的方法是将项目阅读器声明为 bean 并按如下方式传递作业参数:
@Bean
@StepScope
public FlatFileItemReader flatFileItemReader(@Value("#{jobParameters['inputFileName']}") String name) {
return new FlatFileItemReaderBuilder<Foo>()
.name("flatFileItemReader")
.resource(new FileSystemResource(name))
// set other properties on the reader
}

TA贡献1993条经验 获得超6个赞
使用 Spring,您应该能够通过使用带有语法的@Value注释来获取命令行参数。${}
public void setFileName(@Value("${inputFileName}") final String name) {
inputFileName = name;
}
显然,@Value注释适用于由 Spring 上下文(Beans)管理(有时是代理)的对象。
添加回答
举报