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