spring boot spring batch:如何动态设置查询到ItemReader

时间:2017-07-26 03:07:25

标签: spring-boot spring-batch

我是Spring的新手。我有一个用例,我需要执行相同的多个SQL查询并为每个查询返回相同的POJO。我想写一个Item阅读器并在每一步中更改查询。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以在阅读器中添加@StepScope来使用春季批量后期绑定

示例代码

@StepScope
@Bean
public ItemReader<Pojo> myReader() {
    JdbcCursorItemReader<Pojo> reader = new JdbcCursorItemReader<>();
    reader.setDataSource(basicDataSource);
    //You can inject sql as per you need 
    //Some expamles 
    //using #{jobParameters['']}
    //using {jobExecutionContext['input.file.name']}" 
    //using #{stepExecutionContext['input.file.name']}"
    reader.setSql("Your-SQL");      
    reader.setRowMapper(new MyMapper());
    return reader;
}

检查第5.4节 https://docs.spring.io/spring-batch/reference/html/configureStep.html