Spring-boot集成spring-batch传参数时一般方法为:
@Bean(\"step1Reader\")
public JdbcPagingItemReader<T> step1Reader(DataSource dataSource) {
Map<String, Order> sortKeys = Maps.newHashMap();
sortKeys.put(\"id\", Order.ASCENDING);
Map<String, > params = Maps.newHashMap();
params.put(\"date\", DateUtil.getUTC8LocalDateTime().toDate());
return new JdbcPagingItemReaderBuilder<T>()
.fetchSize(readFetchSize)
.selectClause(\"select *\")
.fromClause(\"from test\")
.whereClause(\"where credit_time < :date\")
.parameterValues(params)
.sortKeys(sortKeys)
.saveState(false)
.rowMapper(new BeanPropertyRowMapper<T>())
.dataSource(dataSource)
.name(\"step1Reader\")
.build();
}
此时,返回值JdbcPagingItemReader中的参数“date”是一个定值,并不会随着日期的推进变化。
所以可以通过jobParameters来进行传参
- 设置jobParameters
new JobParametersBuilder()
.addString(\"date\", utc8LocalDateTime.toDate().toString())
.toJobParameters();
- 取参数
@Bean(\"step1Reader\")
@StepScope
//Spring Batch提供了一个特殊的bean scope类(StepScope:作为一个自定义的Spring bean scope)。这个step scope的作用是连接batches的各个steps。这个机制允许配置在Spring的beans当steps开始时才实例化并且允许你为这个step指定配置和参数。
public JdbcPagingItemReader<T> step1Reader(@Value(\"#{jobParameters[date]}\") String date, DataSource dataSource) {
Map<String, Order> sortKeys = Maps.newHashMap();
sortKeys.put(\"id\", Order.ASCENDING);
Map<String, > params = Maps.newHashMap();
return new JdbcPagingItemReaderBuilder<T>()
.fetchSize(readFetchSize)
.selectClause(\"select *\")
.fromClause(\"from test\")
.whereClause(\"where credit_time < date(\'\"+date+\"\')\")
.parameterValues(params)
.sortKeys(sortKeys)
.saveState(false)
.rowMapper(new BeanPropertyRowMapper<T>())
.dataSource(dataSource)
.name(\"step1Reader\")
.build();
}
3.调用
//使用null调用
//https://blog.codecentric.de/en/2013/06/spring-batch-2-2-javaconfig-part-2-jobparameters-executioncontext-and-stepscope/
step1Reader(null, dataSource);
继续阅读与本文标签相同的文章
-
滴滴与清华大学成立未来出行联合研究中心
2026-05-18栏目: 教程
-
三星S10被曝屏下指纹存在安全漏洞:任何人都还可以解锁
2026-05-18栏目: 教程
-
进博会“催生”上海首个保税展示展销场所
2026-05-18栏目: 教程
-
花旗投资现金流量预测公司Cashforce,拟新添增值服务
2026-05-18栏目: 教程
-
开发者必读 · 周报 | 003期
2026-05-18栏目: 教程
