首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从IteamReader设置ExecutionContext输入

从IteamReader设置ExecutionContext输入
EN

Stack Overflow用户
提问于 2020-08-10 21:48:30
回答 1查看 170关注 0票数 1

我在Spring中的第一步实际上从服务器下载了一个CSV,并为它分配了一个动态名称,并将其存储在ExecutionContext中。

现在的问题是,在创建bean时,如何将输入文件的名称传递给FlatFileItemReader。

举个例子:

代码语言:javascript
复制
@Bean
    public FlatFileItemReader<Customer> customerItemReader() {
        FlatFileItemReader<Customer> reader = new FlatFileItemReader<>();

        reader.setLinesToSkip(1);
        reader.setResource(new ClassPathResource("/data/customer.csv"));

        DefaultLineMapper<Customer> customerLineMapper = new DefaultLineMapper<>();

        DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
        tokenizer.setNames(new String[] {"id", "firstName", "lastName", "birthdate"});

        customerLineMapper.setLineTokenizer(tokenizer);
        customerLineMapper.setFieldSetMapper(new CustomerFieldSetMapper());
        customerLineMapper.afterPropertiesSet();

        reader.setLineMapper(customerLineMapper);

        return reader;
    }

注意,reader.setResource(new ClassPathResource("/data/customer.csv"))是在创建bean时设置的.

如何将信息从ExecutionContext FlatFileItemReader 传递到FlatFileItemReader作为输入源?

我需要查找Spring批处理表吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-11 04:49:51

让您的bean @StepScope@JobScope并使用@Value来获取值。

代码语言:javascript
复制
@Bean
@StepScope
public FlatFileItemReader<Customer> customerItemReader(@Value("#{stepExecutionContext['your.name']} String file) {
 // Bean creation logic here. 
}

现在,如果您花时间阅读文献资料,您就会亲自阅读它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63348463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档