java-在运行时动态选择Spring-Batch阅读器

我有一个春季批处理工作,可以将各种银行对帐单转换为我的应用程序.每种银行对帐单类型都有一个不同的读取器,而所有这些都只有一个写入器.这项工作非常简单-读取,处理和写入:

<batch:job id="importer" restartable="true">
    <batch:step id="import">
        <batch:tasklet>
            <batch:chunk reader="reader" writer="writer" processor="processor" commit-interval="10" />
        </batch:tasklet>
    </batch:step>
</batch:job>

现在,我希望最终用户提供对帐单文件以及银行信息,然后在运行时选择相应的spring-batch阅读器以运行此作业.理想情况下,如果我可以第一步先阅读并尝试先“猜测”银行表格对帐单格式,那就太好了.但是我离题了.

是否可以在运行作业之前将阅读器注入作业?还是有更好的方法实现我的目标?

最佳答案
您可以从输入参数或属性文件设置阅读器:

<batch:chunk reader="#{jobParameters['reader.beanId']}" writer="writer" processor="processor" commit-interval="10" />

您也可以考虑作业和步骤属性的后期绑定,这是spring-batch step-scope链接

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...